[Spice-commits] src/spice-widget.c
Frediano Ziglio
fziglio at kemper.freedesktop.org
Thu Jun 16 14:53:08 UTC 2016
src/spice-widget.c | 9 +++++++++
1 file changed, 9 insertions(+)
New commits:
commit 7d881d2193bf5598b888a48bb4d8d7ad2e62f443
Author: Frediano Ziglio <fziglio at redhat.com>
Date: Wed Jun 15 11:49:53 2016 +0100
widget: Disable IME context on display widget
This prevent Windows to handle IME on the widget which cause the
application to not receive keyboard events.
To test this issue set keyboard layout to Japanese and Microsoft
IME (the default one). Set the input method to full katakana, assure
your remote-viewer is using this method and start pressing
alphabetical keys. On the guest (open a terminal, an editor or
a word processor to make easier) you won't see any character.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
Acked-by: Christophe Fergeau <cfergeau at redhat.com>
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)
More information about the Spice-commits
mailing list