Summary: | assigning "<" as accelerator doesn't work | ||
---|---|---|---|
Product: | kcontrol | Reporter: | Melchior Franz <mfranz> |
Component: | kcmkeys | Assignee: | Ellis Whitehead <ellis> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | bastian, j.cook, l.lunak, zander |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Melchior Franz
2004-10-12 13:31:29 UTC
Please provide your 'xmodmap' output. I can confirm the < vs > case, it's some black magic in KKey::simplify() (the Shift+Equal->Shift+Plus case) and KKeyServer::Sym::getModsRequired(), but after trying now I really don't feel like fixing that :(. I was looking at KKey::simplify() as well already. I have a french keyboard and the '1' sits above the '&', so 'Shift+&' gives '1', but KShortcutDialog reports that as 'Shift+1'. In KShortcutDialog::keyPressed, KKey::simplify() correctly converts 'Shift+1' to '1' but then it hits: if( m_bQtShortcut ) { key = key.keyCodeQt(); which effectively reverts the effect of KKey::simplify(). Having the following debug code: void KShortcutDialog::keyPressed( KKey key ) { kdDebug(125) << "keyPressed: " << key.toString() << endl; key.simplify(); kdDebug(125) << "keyPressed simple: " << key.toString() << endl; if( m_bQtShortcut ) key = key.keyCodeQt(); kdDebug(125) << "keyPressed simple #2: " << key.toString() << endl; I get: kdecore (KAccel): keyPressed: Shift+1 kdecore (KAccel): keyPressed simple: 1 kdecore (KAccel): keyPressed simple #2: Shift+1 Reverting as follows fixes the ignored Win key bug (X11R6.8.1): /kapplication.cpp/1.682/Tue Oct 12 13:38:59 2004//T1.682 /kaccel.cpp/1.147/Tue Oct 12 13:39:56 2004//T1.147 ... and here's my xmodmap output: xmodmap: up to 3 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x6d) mod1 Alt_L (0x40), Alt_L (0x7d) mod2 mod3 mod4 mod5 Super_L (0x83), Super_R (0x81) I have reverted the changes to kaccel.cpp/kapplication.cpp, we need the code that was there for the handling of the Win key, since Qt doesn't know about that key. This also fixes the keyboard repeat problem (that was a feature actually). That leaves the "<" problem. *** Bug 103341 has been marked as a duplicate of this bug. *** *** Bug 113286 has been marked as a duplicate of this bug. *** |