[squeak-dev] Unix keyboard events lose track when multiple keys pressed or keys held down
tim Rowledge
tim at rowledge.org
Sun Jan 17 19:56:56 UTC 2021
> On 2021-01-17, at 11:10 AM, tim Rowledge <tim at rowledge.org> wrote:
>
> Good experiment to try though.
It certainly allows the basic keystrokes to work and even ctl-e-e . That latter actually surprises me given the description of what XLookupString does, but life in X is always surprising - oh, wait, there's a bunch of code in case KeyPress: that handles some cases.
The log for a ctl-e-e is
(handleEvent)X KeyPress state 0x0 raw keycode 92
convert keycode 92(5c) -> 0(00) (keysym fe03 UNKNOWN CODE)
symbolic, keyCode, ucs4: fe03, -1, 0
pressed, buffer: 0, 0
multi_key reset
keyCode, ucs4, multi_key_buffer: -1, 0, 0
(handleEvent)X KeyRelease state 0x80 raw keycode 92
convert keycode 92(5c) -> 0(00) (keysym fe03 UNKNOWN CODE)
symbolic, keyCode, ucs4: fe03, -1, 0
Skip KeyRelease at keyCode/ucs4 test line 3764
(handleEvent)X KeyPress state 0x0 raw keycode 252
convert keycode [195(c3),169(a9)] 252(fc) -> 195(c3) (keysym 00e9 XK_eacute)
symbolic, keyCode, ucs4: e9, 195, e9
pressed, buffer: 0, 0
multi_key reset
keyCode, ucs4, multi_key_buffer: 195, 233, 0
signalInputEvent
EVENT (recordKeyboardEvent): time: 1565590 key down ` ' (195 = 0xc3) ucs4 233
signalInputEvent
EVENT (recordKeyboardEvent): time: 1565590 key char ` ' (195 = 0xc3) ucs4 233
(ioGetNextEvent) KEYBOARD evt: time: 1565590 press: 1 char: 195 utf32: 233
(ioGetNextEvent) KEYBOARD evt: time: 1565590 press: 0 char: 195 utf32: 233
(handleEvent)X KeyRelease state 0x0 raw keycode 252
convert keycode [195(c3),169(a9)] 252(fc) -> 195(c3) (keysym 00e9 XK_eacute)
symbolic, keyCode, ucs4: e9, 195, e9
signalInputEvent
EVENT (recordKeyboardEvent): time: 1565687 key up ` ' (195 = 0xc3) ucs4 233
(ioGetNextEvent) KEYBOARD evt: time: 1565687 press: 2 char: 195 utf32: 233
Looks like the 'multi_key_buffer' stuff is what the 'lastKey' bit was modelled on?
tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
A computer scientist is someone who fixes things that aren't broken.
More information about the Squeak-dev
mailing list
|