See #396, #454, and #42. Maybe also #43.
I investigated the differences in the low-level event array sent by the VM to the image for relevant CTRL-key combinations.
For key-character events, that array is structured as follows:
{
2 "type for keyboard event"
293847 "timestamp"
... "character code ASCII"
0 "key character, not key down or key up"
2 "ctrl key as modifier pressed only"
... "character code as Unicode"
0 "reserved"
1 "host window number 1"
}
So, please focus on those character codes.
Windows 10 (Version 1909)
cog.spur 201911282316
Squeak 5.3beta 19276
Image format 6521 (32 bit)
mouse wheel up
#(2 91706953 30 0 2 0 0 1)
mouse wheel down
#(2 91731109 31 0 2 0 0 1)
ctrl + up
#(2 91746671 30 0 2 30 0 1)
ctrl + down
#(2 91778531 31 0 2 31 0 1)
ctrl + c
#(2 91802453 3 0 2 3 0 1)
Result: Our mouse-wheel hack does not set the Unicode character. Only the ASCII character.
Debian 10 (Gnome, X11)
cog.spur 201911282316
Squeak 5.3beta 19276
Image format 68021 (64 bit)
mouse wheel up
#(2 109872 30 0 15 30 0 1)
mouse wheel down
#(2 109923 31 0 15 31 0 1)
ctrl + up
#(2 212175 30 0 2 30 0 1)
ctrl + down
#(2 249663 31 0 2 31 0 1)
ctrl + c
#(2 184765 99 0 2 99 0 1)
Result: Our mouse-wheel hack raises all modifier keys as pressed. Not just the CTRL key. Also, the ASCII control characters are not considered. See https://en.wikipedia.org/wiki/Control_character.
macOS Sierra (10.12.6)
cog.spur 201911282316
Squeak 5.3beta 19276
Image format 68021 (64 bit)
mouse wheel up
#(2 57855 30 0 15 30 0 1)
mouse wheel down
#(2 84690 31 0 15 31 0 1)
ctrl + up
#(2 290999 30 0 2 30 0 1)
ctrl + down
#(2 322197 31 0 2 31 0 1)
ctrl + c
#(2 337191 3 0 2 3 0 1)
Result: Our mouse-wheel hack raises all modifier keys as pressed. Not just the CTRL key.
Implications for the image side: We cannot consistently (or easily or without magic) duplicate or swap or unpack character codes via KeyDecodeTable
in EventSensor >> #processEvent:
because:
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.