Selaa lähdekoodia

X11: send keypress events before textinput events.

Ryan C. Gordon 10 vuotta sitten
vanhempi
commit
589c46dd65
1 muutettua tiedostoa jossa 5 lisäystä ja 7 poistoa
  1. 5 7
      src/video/x11/SDL_x11events.c

+ 5 - 7
src/video/x11/SDL_x11events.c

@@ -755,19 +755,17 @@ X11_DispatchEvent(_THIS)
 #else
 #else
             XLookupString(&xevent.xkey, text, sizeof(text), &keysym, NULL);
             XLookupString(&xevent.xkey, text, sizeof(text), &keysym, NULL);
 #endif
 #endif
+
 #ifdef SDL_USE_IBUS
 #ifdef SDL_USE_IBUS
             if(SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE){
             if(SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE){
-                if(!(handled_by_ime = SDL_IBus_ProcessKeyEvent(keysym, keycode))){
-#endif
-                    if(*text){
-                        SDL_SendKeyboardText(text);
-                    }
-#ifdef SDL_USE_IBUS
-                }
+                handled_by_ime = SDL_IBus_ProcessKeyEvent(keysym, keycode);
             }
             }
 #endif
 #endif
             if (!handled_by_ime) {
             if (!handled_by_ime) {
                 SDL_SendKeyboardKey(SDL_PRESSED, videodata->key_layout[keycode]);
                 SDL_SendKeyboardKey(SDL_PRESSED, videodata->key_layout[keycode]);
+                if(*text) {
+                    SDL_SendKeyboardText(text);
+                }
             }
             }
 
 
         }
         }