[Spice-devel] [spice-gtk] widget: Disable IME context on display widget
Pavel Grunt
pgrunt at redhat.com
Wed Jun 15 11:04:46 UTC 2016
Hi Frediano,
On Wed, 2016-06-15 at 11:54 +0100, Frediano Ziglio wrote:
> 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. */
Does it mean that events intended to be for the window but not for SpiceDisplay
will be now forwarded to SpiceDisplay ? e.g.: navigation in menu items using
accelerators (alt+v to open the view menu)
Pavel
> + 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-devel
mailing list