diff src/events/SDL_keyboard.c @ 4890:443771460df9

Fixed crash on systems that don't have StopTextInput
author Sam Lantinga <slouken@libsdl.org>
date Sat, 18 Sep 2010 18:31:01 -0700
parents e725a6a60c32
children 25d4feb7c127
line wrap: on
line diff
--- a/src/events/SDL_keyboard.c	Sat Sep 18 18:15:08 2010 -0700
+++ b/src/events/SDL_keyboard.c	Sat Sep 18 18:31:01 2010 -0700
@@ -612,11 +612,14 @@
     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());
-        }
+
+        /* Ensures IME compositions are committed */
+        if (SDL_EventState(SDL_TEXTINPUT, SDL_QUERY)) {
+            SDL_VideoDevice *video = SDL_GetVideoDevice();
+            if (video && video->StopTextInput) {
+                video->StopTextInput(video);
+            }
+        }
     }
 
     keyboard->focus = window;
@@ -626,7 +629,10 @@
                             0, 0);
 
         if (SDL_EventState(SDL_TEXTINPUT, SDL_QUERY)) {
-            SDL_StartTextInput();
+            SDL_VideoDevice *video = SDL_GetVideoDevice();
+            if (video && video->StartTextInput) {
+                video->StartTextInput(video);
+            }
         }
     }
 }