Last active
August 31, 2016 05:31
-
-
Save lethean/0d233d417446de6fa670000c7a1da7e3 to your computer and use it in GitHub Desktop.
Clutter Win32 IME(Input Method Editor) Patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/clutter.orig/win32/clutter-event-win32.c b/clutter/win32/clutter-event-win32.c | |
index 7a360c6..6b1fedc 100644 | |
--- a/clutter.orig/win32/clutter-event-win32.c | |
+++ b/clutter/win32/clutter-event-win32.c | |
@@ -288,7 +288,10 @@ clutter_event_dispatch (GSource *source, | |
the clutter event queue */ | |
while (!clutter_events_pending () && PeekMessageW (&msg, NULL, | |
0, 0, PM_REMOVE)) | |
+ { | |
+ TranslateMessage (&msg); /* needed for WM_IME_CHAR */ | |
DispatchMessageW (&msg); | |
+ } | |
/* Pop an event off the queue if any */ | |
if ((event = clutter_event_get ())) | |
@@ -582,6 +585,25 @@ clutter_win32_handle_event (const MSG *msg) | |
} | |
break; | |
+ case WM_IME_CHAR: | |
+ { | |
+ ClutterEvent *event = clutter_event_new (CLUTTER_KEY_PRESS); | |
+ BYTE key_states[256]; | |
+ | |
+ GetKeyboardState (key_states); | |
+ | |
+ event->key.keyval = CLUTTER_KEY_VoidSymbol; | |
+ event->key.unicode_value = msg->wParam; | |
+ event->key.time = msg->time; | |
+ event->key.modifier_state = get_key_modifier_state (key_states); | |
+ event->key.hardware_keycode = (msg->lParam >> 16) & 0xff; | |
+ event->any.stage = stage; | |
+ | |
+ clutter_event_set_device (event, core_keyboard); | |
+ take_and_queue_event (event); | |
+ } | |
+ break; | |
+ | |
case WM_MOUSELEAVE: | |
{ | |
ClutterEvent *event = clutter_event_new (CLUTTER_LEAVE); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment