[Spice-devel] [spice-gtk] widget: Disable IME context on display widget
Frediano Ziglio
fziglio at redhat.com
Wed Jun 15 10:54:26 UTC 2016
This prevent Windows to handle IME on the widget which cause the
application to not receive keyboard events.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
src/spice-widget.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/spice-widget.c b/src/spice-widget.c
index c528614..595c8f5 100644
--- a/src/spice-widget.c
+++ b/src/spice-widget.c
@@ -1687,6 +1687,15 @@ static gboolean focus_in_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UN
return true;
release_keys(display);
+#ifdef G_OS_WIN32
+ /* Reset the IME context of the focused window.
+ * Note that the focused window can be different from SpiceDisplay
+ * one but the events are received and forwarder by this window. */
+ HWND hwnd_focused = GetFocus();
+ if (hwnd_focused != NULL) {
+ ImmAssociateContext(hwnd_focused, NULL);
+ }
+#endif
if (!d->disable_inputs)
spice_gtk_session_sync_keyboard_modifiers(d->gtk_session);
if (d->keyboard_grab_released)
--
2.7.4
More information about the Spice-devel
mailing list