[Spice-devel] [spice-gtk 1/3] Send Zenkaku_Hankaku key in JP keyboard

Takao Fujiwara tfujiwar at redhat.com
Tue Apr 12 11:08:19 UTC 2016


I mean ImmDisableIME.patch should be used as a workaround.
It's hard to get why SEGV happens because my build environment is brew scratch-build but not local.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1000.0x858]
0x000007fefd551abb in msvcrt!_flsbuf () from C:\Windows\system32\msvcrt.dll
(gdb) where
#0  0x000007fefd551abb in msvcrt!_flsbuf ()
    from C:\Windows\system32\msvcrt.dll
#1  0x000000000022f3fe in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

When change Ja MS-IME to US with Alt+Shift or MS-IME to JP with Ctrl+Shift, the SEGV happens.

I added the following debug flags in mingw-spice-gtk.spec but cannot get the stacks:
+%global optflags -g
+%global __os_install_post :

I mean when IME is switched, WM_INPUTLANGCHANGE is called in gdk_event_translate().
But ImmDisableIME.patch can disable to switch IMEs and WM_INPUTLANGCHANGE is not called in gdk_event_translate() and SEGV does not happen.

On 04/11/16 20:10, Frediano Ziglio-san wrote:
>>
>> Please note the internal ImmDisableIME.patch needs to be disabled to get the
>> WM_INPUTLANGCHANGE signal with mouse but no ImmDisableIME.patch causes a
>> SEGV with Ctrl+Shift or Alt+Shift.
>>
>
> Is not clear what you are suggesting with this.
>
> Should ImmDisableIME.patch be used or not? Why it SEGV?
> How do you capture WM_INPUTLANGCHANGE message?
>
> Frediano
>
>
>> On 04/06/16 15:42, Takao Fujiwara-san wrote:
>>> 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_DBE_DBCSCHAR) 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_DBE_SBCSCHAR) 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_DBE_SBCSCHAR).
>>>
>>> VK_CAPITAL, VK_DBE_ROMAN are also applied the similar fixes.
>>> ---
>>>    src/spice-widget-priv.h |  1 +
>>>    src/spice-widget.c      | 78
>>>    +++++++++++++++++++++++++++++++++++++++++++++++--
>>>    2 files changed, 77 insertions(+), 2 deletions(-)
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/spice-devel
>>
>



More information about the Spice-devel mailing list