[spice-gtk] widget: Disable IME context on display widget

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This prevent Windows to handle IME on the widget which cause the
application to not receive keyboard events.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 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

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]