Hi there,

I am struggling with an issue where a modifier key can become stuck in
a "pressed" state in the server, and be hard to un-stuck. This can happen 
for
example if a VNC client fails to send some key up events (e.g. if it loses
focus), or if multiple users try to interact with the same session.

I managed to isolate a case with a specific key combination involving
**shift**.

Precisely, the following sequence of input events will put the server into
a state where the alt modifier is active (not sure if I'm phrasing this
correctly), and simply pressing an alt key (client-side) won't help:

* 65505 down  -- ShiftLeft
* 65513 down  -- AltLeft
* 65505 up    -- ShiftLeft
* 65513 down  -- AltLeft
* 65513 up    -- AltLeft


Furthermore, I noticed that:

* if a VNC client sends only a "65505 down" event, the server reacts by 
generating a "key 50 pressed" event
* if a VNC client sends only a "65513 down" event, the server reacts by 
generating a "key 64 pressed" event
* if a VNC client sends a "65505 down" event, then a "65513 down" event, 
the server reacts by generating a "key 50 pressed" event, then a "key **125** 
pressed" event

Which I believe is consistent with this bit of configuration described by 
xmodmap:

```
$ xmodmap -pke | grep Alt_L
keycode  64 = Alt_L Meta_L Alt_L Meta_L
keycode 125 = NoSymbol Alt_L NoSymbol Alt_L
```

Upon further inspection with xev and XQueryKeymap(), here are some more 
details of what happens when the sequence described aboved is sent :

| VNC event  | X event (xev) | resulting modifier state (xev) | keys 
pressed, according to XQueryKeymap() |
| ---------- | ------------- | ------------------------------ | ----------- 
|
| 65505 down | key 50 down   | 0x1                            | 50          
|
| 65513 down | key 125 down  | 0x9                            | 50, 125     
|
| 65505 up   | key 50 up     | 0x8                            | 125         
|
| 65513 down | key 64 down   | 0x8                            | 64, 125     
|
| 65513 up   | key 64 up     | 0x8                            | 125         
|
| 65513 up   | nothing       | 0x8                            | 125         
|

>From there, key 125 is still pressed, and thus alt is stuck enabled. (It 
can be unblocked with "shift+alt", but of course this is not intuitive).

* What would be the proper way to fix/avoid this ? Could it be just a 
configuration fix? Any hint?
* Also, is there a trick I could use or abuse to workaround this kind of 
issue? (Like, a trick to "up" all the keys?)
* Am I completely off track?

Any help/hint will be appreciated, I am discovering quite a lot of things 
here.

--
Marc Legendre
AnatoScope

-- 
You received this message because you are subscribed to the Google Groups 
"TurboVNC User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/turbovnc-users/3161d02e-d10c-443d-a1e7-e9206349c5b8%40googlegroups.com.

Reply via email to