Ensure compositions are committed when keyboard focus changes.
There may be a better way to do this.
--- a/src/events/SDL_keyboard.c Tue Sep 07 20:56:02 2010 -0700
+++ b/src/events/SDL_keyboard.c Wed Sep 15 00:28:19 2010 -0400
@@ -612,6 +612,11 @@
if (keyboard->focus && keyboard->focus != window) {
SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_LOST,
0, 0);
+
+ //Ensures IME compositions are committed
+ if (SDL_EventState(SDL_TEXTINPUT, SDL_QUERY)) {
+ SDL_GetVideoDevice()->StopTextInput(SDL_GetVideoDevice());
+ }
}
keyboard->focus = window;