| Summary: | Multimedia keys and dead keys no longer working | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Gerry JJ <trick> |
| Component: | events | Assignee: | Sam Lantinga <slouken> |
| Status: | WAITING --- | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P1 | CC: | abhijit.foss, jspradlin, robert.ancell, simos.bugzilla |
| Version: | HG 2.0 | Keywords: | target-2.0.0 |
| Hardware: | x86 | ||
| OS: | Linux | ||
| URL: | https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/619256 | ||
|
Description
Gerry JJ
2009-01-04 22:05:56 UTC
What's the output of xev for the affected keys? Copied the output of xev below. Also, I found out that the Print Screen/SysRq key ("Print") and the Pause/Break key ("Pause") also stopped working in revision 4176, so I included those here as well. The key I called "Stop" above is called "Cancel" here, and dead_diaeresis is the dead ¨ key. Removed the KeyRelease events for brevity =)
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33711830, (-584,89), root:(906,118),
state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33712408, (-584,89), root:(906,118),
state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33712912, (-584,89), root:(906,118),
state 0x0, keycode 174 (keysym 0x1008ff15, XF86AudioStop), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33713869, (-584,89), root:(906,118),
state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33714253, (-584,89), root:(906,118),
state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33714646, (-584,89), root:(906,118),
state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33715143, (-584,89), root:(906,118),
state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33716852, (-584,89), root:(906,118),
state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33717269, (-584,89), root:(906,118),
state 0x0, keycode 167 (keysym 0x1008ff27, XF86Forward), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33717704, (-584,89), root:(906,118),
state 0x0, keycode 136 (keysym 0xff69, Cancel), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33718074, (-584,89), root:(906,118),
state 0x0, keycode 181 (keysym 0x1008ff29, XF86Refresh), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33719304, (-584,89), root:(906,118),
state 0x0, keycode 180 (keysym 0x1008ff18, XF86HomePage), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33719704, (-584,89), root:(906,118),
state 0x0, keycode 163 (keysym 0x1008ff19, XF86Mail), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33720503, (-584,89), root:(906,118),
state 0x0, keycode 225 (keysym 0x1008ff1b, XF86Search), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33720993, (-584,89), root:(906,118),
state 0x0, keycode 164 (keysym 0x1008ff30, XF86Favorites), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33721672, (-584,89), root:(906,118),
state 0x0, keycode 150 (keysym 0x1008ff2f, XF86Sleep), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33723154, (-584,89), root:(906,118),
state 0x0, keycode 35 (keysym 0xfe57, dead_diaeresis), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33724598, (-584,89), root:(906,118),
state 0x0, keycode 107 (keysym 0xff61, Print), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 33725356, (-584,89), root:(906,118),
state 0x0, keycode 127 (keysym 0xff13, Pause), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
One more: The keypad enter key also stopped working in revision 4176.
KeyPress event, serial 30, synthetic NO, window 0x2000001,
root 0x1a6, subw 0x0, time 34253593, (-407,622), root:(1083,651),
state 0x0, keycode 104 (keysym 0xff8d, KP_Enter), same_screen YES,
" XLookupString gives 1 bytes: (0d) "
XFilterEvent returns: False
Getting the volume keys to work (XF86AudioMute, XF86AudioLowerVolume and XF86AudioRaiseVolume) is particularly useful as otherwise playing a full screen game (in this case tuxracer) can be very loud and users immediately try and reduce the volume by pressing the multimedia keys on their keyboards. SDL currently passes these events as SDLK_UNKNOWN Sorry, ignore that last comment - I didn't notice this bug was regarding the development version of libsdl This is mostly fixed in the current SDL 1.3 snapshot: http://www.libsdl.orgdead_diaeresis/tmp/SDL-1.3.zip All the multimedia keys should be recognized. The only thing I'm not sure about is dead_diaeresis. It'll currently be recognized as SDL_SCANCODE_RIGHTBRACKET. (In reply to comment #6) > This is mostly fixed in the current SDL 1.3 snapshot: > http://www.libsdl.orgdead_diaeresis/tmp/SDL-1.3.zip > > All the multimedia keys should be recognized. The only thing I'm not sure > about is dead_diaeresis. It'll currently be recognized as > SDL_SCANCODE_RIGHTBRACKET. Hm, I'm still getting unrecognized keys here with that.. Here's some checkkeys output KeyPress (X11 keycode = 0xF2) The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list <sdl@libsdl.org> X11 KeyCode 242 (234), X11 KeySym 0x1008FF77 (XF86Save). KeyRelease (X11 keycode = 0xF2) KeyPress (X11 keycode = 0xB3) The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list <sdl@libsdl.org> X11 KeyCode 179 (171), X11 KeySym 0x1008FF81 (XF86Tools). KeyRelease (X11 keycode = 0xB3) There's also some unknown keys (removed release events): KeyPress (X11 keycode = 0x6C) Unknown Key (scancode 230 = Right Alt) pressed modifiers: RALT KeyPress (X11 keycode = 0xA3) Unknown Key (scancode 265 = Mail) pressed modifiers: (none) KeyPress (X11 keycode = 0xB4) Unknown Key (scancode 269 = AC Home) pressed modifiers: (none) KeyPress (X11 keycode = 0xAC) Unknown Key (scancode 261 = AudioPlay) pressed modifiers: (none) KeyPress (X11 keycode = 0xAD) Unknown Key (scancode 259 = AudioPrev) pressed modifiers: (none) KeyPress (X11 keycode = 0xAB) Unknown Key (scancode 258 = AudioNext) pressed modifiers: (none) KeyPress (X11 keycode = 0x94) Unknown Key (scancode 266 = Calculator) pressed modifiers: (none) KeyPress (X11 keycode = 0xAE) Unknown Key (scancode 260 = AudioStop) pressed modifiers: (none) KeyPress (X11 keycode = 0xA6) Unknown Key (scancode 270 = AC Back) pressed modifiers: (none) KeyPress (X11 keycode = 0xA7) Unknown Key (scancode 271 = AC Forward) pressed modifiers: (none) KeyPress (X11 keycode = 0xB5) Unknown Key (scancode 273 = AC Refresh) pressed modifiers: (none) KeyPress (X11 keycode = 0xA3) Unknown Key (scancode 265 = Mail) pressed modifiers: (none) KeyPress (X11 keycode = 0xE1) Unknown Key (scancode 268 = AC Search) pressed modifiers: (none) Also, volume up/down only generates release events, never press events: KeyRelease (X11 keycode = 0x7A) KeyRelease (X11 keycode = 0x7B) The dead "/^/~ key generates only a release event on the first press, and is unrecognized on the second press: KeyRelease (X11 keycode = 0x23) KeyPress (X11 keycode = 0x0) The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list <sdl@libsdl.org> X11 KeyCode 0 (-8), X11 KeySym 0x0 ((null)). KeyRelease (X11 keycode = 0x23) Pressing that key once and then a key it modifies (eg e) makes the second key be unrecognized as well. Here I pressed e, ¨, e: Key pressed : scancode 8 = E, keycode 0x00000065 = E (e) modifiers: (none) Text: e KeyRelease (X11 keycode = 0x1A) Key released: scancode 8 = E, keycode 0x00000065 = E modifiers: (none) KeyRelease (X11 keycode = 0x23) KeyPress (X11 keycode = 0x0) The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list <sdl@libsdl.org> X11 KeyCode 0 (-8), X11 KeySym 0x0 ((null)). KeyRelease (X11 keycode = 0x1A) Other dead keys seem to behave in the same way. For example, I can make an é by pressing altgr+\ (the key left of backspace) and then e. Here's the same in checkkeys: KeyPress (X11 keycode = 0x6C) Unknown Key (scancode 230 = Right Alt) pressed modifiers: RALT KeyRelease (X11 keycode = 0x15) KeyRelease (X11 keycode = 0x6C) Unknown Key (scancode 230 = Right Alt) released modifiers: (none) KeyPress (X11 keycode = 0x0) The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL mailing list <sdl@libsdl.org> X11 KeyCode 0 (-8), X11 KeySym 0x0 ((null)). KeyRelease (X11 keycode = 0x1A) The \ key by itself works fine btw: KeyPress (X11 keycode = 0x15) Key pressed : scancode 46 = =, keycode 0x0000005C = \ (\) modifiers: (none) Text: \ KeyRelease (X11 keycode = 0x15) Key released: scancode 46 = =, keycode 0x0000005C = \ modifiers: (none) It only misbehaves when combined with a modifier key that makes it dead (shift or alt-gr here). (Sorry if you get a lot of copies of this email, we're touching dozens of bug reports right now.) Tagging a bunch of bugs as target-2.0.0, Priority 1. This means we're in the final stretch for an official SDL 2.0.0 release! These are the bugs we really want to fix before shipping if humanly possible. That being said, we don't promise to fix them because of this tag, we just want to make sure we don't forget to deal with them before we bless a final 2.0.0 release, and generally be organized about what we're aiming to ship. Hopefully you'll hear more about this bug soon. If you have more information (including "this got fixed at some point, nevermind"), we would love to have you come add more information to the bug report when you have a moment. Thanks! --ryan. I need some help. Gerry, can you dig into the keyboard code and see what's going on? I can't reproduce the issues here. |