[OpenSmalltalk/opensmalltalk-vm] X11 Event Handling: Keystroke events are not recognized for Numpad Enter Key (#556)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[OpenSmalltalk/opensmalltalk-vm] X11 Event Handling: Keystroke events are not recognized for Numpad Enter Key (#556)

David T Lewis
 

Setup: Win 2004 + WSL (Ubuntu) + VcXsrv

When I press the right enter key (part of the numpad), only keyDown and keyUp events are recorded by the VM, but not any keystroke event. The left enter key, however, works fine, and so does the right enter key on Windows do. Using HandMorph >> #showEvents:, the keyUp and keyDown events look the same for both enter keys (character code 13).

I don't have a real Linux machine available at the moment. Can someone tell whether the issue also exists without VcXsrv?

In general, running Squeak works fine with this setup. However, some keys are not mapped correctly. First, I thought this would be a problem of VcXsrv (and partially, this is also true), but then I recognized that gedit recognizes the right enter key correctly through VcXsrv, so this appears to be a problem of OSVM indeed.


In sqUnixX11.c, apparently EventKeyDown and EventKeyChar events are always generated together with one exception:

https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/7f69e44dd9cdf5d1fe2d838e824e86f7503abe93/platforms/unix/vm-display-X11/sqUnixX11.c#L3749

So either x2sqKey() or xkeysym2ucs4() must be responsible for the bug. However, I have never read these sources before, so probably, I'm completely on the wrong track ...
How can I enable DEBUG_KEYBOARD_EVENTS?

Looking forward to your help,
Christoph


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

<script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/556", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/556", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] X11 Event Handling: Keystroke events are not recognized for Numpad Enter Key (#556)

David T Lewis
 

Hey all, just another issue in connection with VcXsrv: On my German QWERTZ keyboard, the circumflex key (^/°) is a dead key, i.e. I need to press space after this key in order to actually type a circumflex. This works fine for Squeak in Windows, but in VcXsrv, it doesn't ... Instead of ^, ̂ (sic: 16r20 16r302) will be typed. Again, gedit recognizes this key correctly, so I think this could be an issue with sqUnixX11.c.

I recorded the following keyboard event trace when pressing "dead_circumflex , space" in Squeak/VcXsrv:

keyUp (94)

keyDown (32)



keystroke '<space>' (32)

keyDown (770)

keystroke '̂' (770)

keyUp (32)

For comparison, in Squeak on Windows, the same keyboard input looks like this:

keyDown (220)

keyUp (220)



keyDown (32)

keystroke '^' (94)

keyUp (32)

220 appears to be the dead circumflex key code, I could reproduce this in a browser. It looks as if VcXsrv does not respect this protocol but sends a single undelayed circumflex key down. Or could this be an issue with the dead_key_case handling in sqUnixX11.c? gedit handles this input correctly. Under Linux, who is responsible for handling dead keys? The X11 server or the X11 client?

Again, it would be great if someone else with a native Linux installation could give some feedback about the behavior with a Qwertz keyboard without VcXrvc emulation. 😅


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

<script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/556#issuecomment-815301271", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/556#issuecomment-815301271", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]</script>