[Spice-devel] Handle JP keyboard with spice-gtk from Windows client
Frediano Ziglio
fziglio at redhat.com
Thu Mar 31 11:43:08 UTC 2016
>
> I noticed Linux GNOME desktop hangs up when Windows virt-viewer connects to
> the desktop and type some specific keys on JP keyboard.
>
> Server: GNOME desktop and IBus in RHEL 7
> Client virt-viewer in Windows 7 with JP 106 keyboard
>
> When I see the key events with 'xev' command in GNOME desktop, I observed the
> unlimited too many key events of Zenkaku_Hankaku key and it caused the
> desktop freeze.
> The attached three patches resolves the desktop issues.
>
Can you please send the patches as separate e-mails (like git format-patch style)
so we can discuss them online?
Frediano
> 1. spice-gtk-1311820-01-zkhk.patch
> Zenkaku_Hankaku key has the different virtual-key codes between WM_KEYDOWN
> and WM_KEYUP and MapVirtualKey() cannot get the scancode from virtual-key
> code of WM_KEYDOWN (VK_OEM_ENLW) and spice-gtk didn't send the key press
> events and caused the desktop freeze with unlimited key release events.
>
> The fix is to get the scancode from virtual-key code of WM_KEYUP
> (VK_OEM_AUTO) and Zenkaku_Hankaku key works fine.
>
> Alt + Zenkaku_Hankaku key also has the different virtual-key code and
> MapVirtualKey() cannot get the
> scancode from the virtual-key and spice-gtk didn't send the key press events
> and Alt+Zenkaku_Hankaku could not be used.
>
> The fix is to get the scancode from virtual-key code of Zenkaku_Hankaku key
> (VK_OEM_AUTO).
>
> VK_CAPITAL, VK_OEM_BACKTAB are also applied the similar fixes.
>
> 2. spice-gtk-1311820-02-freeze.patch
> After spice-gtk-1311820-01-zkhk.patch is applied, WM_KEYDOWN of
> Alt+Zenkaku_Hankaku (VK_KANJI) can be sent with spice-gtk but
> Alt+Zenkaku_Hankaku did
> not send the WM_KEYUP event in Windows and it caused Linux desktop freeze
> with unlimited key press events.
>
> The fix is to send the key release event in spice-gtk.
>
> VK_OEM_ATTN, VK_OEM_COPY, VK_OEM_BACKTAB are applied the similar fixes.
>
> 3. spice-gtk-1311820-03-hangul.patch
> This is an additional fix. Korean keyboard assigns Hangul key on the position
> of Right Alt and Left Alt and Hangul keys have the different scancodes
> but MapVirtualKey() returned the same scancode and could not use Hangul key
> on Linux desktop.
>
> The fix is to send the right scancode of VK_HANGUL.
>
> Thanks,
> Fujiwara
>
More information about the Spice-devel
mailing list