Browse Source

cocoa: Reset IME when sending composed text

This will send an empty `TEXTEDITING` event that is used to signal the 
end of the composition.
Guldoman 2 years ago
parent
commit
084fa4c3fa
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/video/cocoa/SDL_cocoakeyboard.m

+ 6 - 1
src/video/cocoa/SDL_cocoakeyboard.m

@@ -66,6 +66,11 @@
         str = [aString UTF8String];
     }
 
+    /* We're likely sending the composed text, so we reset the IME status. */
+    if ([self hasMarkedText]) {
+        [self unmarkText];
+    }
+
     SDL_SendKeyboardText(str);
 }
 
@@ -114,7 +119,7 @@
                         (int) selectedRange.location, (int) selectedRange.length);
 
     DEBUG_IME(@"setMarkedText: %@, (%d, %d)", _markedText,
-          selRange.location, selRange.length);
+          selectedRange.location, selectedRange.length);
 }
 
 - (void)unmarkText