Comment 49 for bug 36812

Revision history for this message
In , Oded Arbel (oded-geek) wrote :

(In reply to comment #39)
> (In reply to comment #38)
> > I'm not sure why you say that - xev detects CTRL and SHIFT independently.
>
> You did not notice ISO_Next_Group which appears when CTRL and SHIFT pressed at
> same time.

Oh, I though you meant CTRL+SHIFT as in the actual keys, not as "the keyboard layout switching combination you currently have set" (which is not CTRL+SHIFT in my system).

Indeed it does - but that is internal to the XKB implementation and the reason for this bug and not something inherent to X.org itself (other then the XKB part). And we want to change that.

Also, notice that the current implementation looks like this:
1. hold down <1st key of combination>: you get "KeyPress <1st key>"
2. hold down <2nd key of combination>: you get "KeyPress ISO_Prev_Group" (or ISO_Next_Group. I get "prev", not sure why - maybe its a GNOME thing).
3. release <2nd key of combination>: you get "KeyRelease ISO_Prev_Group".
4. release <1st key of combination>: you get "KeyRelease <1st key>"

On the other hand, notice how the current implementation handles a different release order (take it from after step 2 above):
3. release <1st key of combination>: you get "KeyRelease <1st key>"
4. release <2nd key of combination>: you get "KeyRelease <2nd key>"

So in effect, with the alternate sequence, you get a <1st key> press and release, but only ISO_sth_Group press and only <2nd key> release. As I was trained to change layouts quickly, I cannot always guarantee that I release the keys in the order they were pressed, and releasing them out of order causes some problems like the notorious "sticky keys" issue.