[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