Bug 7439

Summary: keyboard state modifiers depend on keypress order
Product: xorg Reporter: James Ralston <ralston>
Component: Input/KeyboardAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED DUPLICATE QA Contact:
Severity: major    
Priority: high    
Version: 7.0.0   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description James Ralston 2006-07-06 08:32:48 UTC
I frequently need to enter key combinations that require pressing and holding
both the Shift and Alt (Meta) keys.  An example would be the Emacs mark-word
command (bound to M-@ by default): to enter it, I would press and hold Shift,
press and hold Alt, and then press the @/2 key on the keyboard.

In xorg-x11-drv-keyboard-1.0.1.3-1.2 (the Fedore Core 5 package), the state
modifiers depend on the order in which the keys are pressed.

Specifically, if I press Alt-Shift-@, the state modifier returned on the
keypress event is 0x9 (0x1 = Shift, 0x8 = Alt) according to xev:

KeyPress event, serial 28, synthetic NO, window 0x3e00001,
    root 0x4c, subw 0x0, time 3094865719, (86,91), root:(90,110),
    state 0x9, keycode 11 (keysym 0x40, at), same_screen YES,
    XLookupString gives 1 bytes: (40) "@"
    XmbLookupString gives 1 bytes: (40) "@"
    XFilterEvent returns: False

This is correct.

However, if I press Shift-Alt-@ (that is, I press the Shift key before the Alt
key), according to xev, the state modifier returned on the keypress event is 0x1:

KeyPress event, serial 28, synthetic NO, window 0x3e00001,
    root 0x4c, subw 0x0, time 3094891814, (90,70), root:(94,89),
    state 0x1, keycode 11 (keysym 0x40, at), same_screen YES,
    XLookupString gives 1 bytes: (40) "@"
    XmbLookupString gives 1 bytes: (40) "@"
    XFilterEvent returns: False

This is *not* correct; the Alt state modifier has been lost.

This is a very big deal to me, because the way I tend to type, I almost always
hit the Shift key before the Alt key.

Furthermore, this doesn't happen 100% of the time.  Occasionally the X server
will work correctly; that is, the modifier keys don't depend on the order in
which they are pressed.  However, I've been unable to figure out what (if
anything) I did to get it to work correctly.
Comment 1 James Ralston 2006-07-06 08:33:36 UTC
See also the downstream bug report:

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=189518
Comment 2 Tethys 2006-11-03 13:47:39 UTC
Bumped this up to major, as a) it's significantly affecting my
productivity, and b) it's a regression on the previous working
behaviour.
Comment 3 Daniel Stone 2006-11-03 19:56:53 UTC

*** This bug has been marked as a duplicate of 2871 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.