Bug#411962: this is fixed in the current release of kde
forwarded 411962 http://bugs.kde.org/125559
tags 411962 +fixed-in-experimental +patch
fixed 411962 4:3.5.6.dfsg.1-1
thanks
This is fixed in KDE SVN since 2006-12-08.
Please consider to include this fix in etch.
Index: kdelibs/kdecore/kkeynative_x11.cpp
===================================================================
--- kdelibs/kdecore/kkeynative_x11.cpp (revision 604776)
+++ kdelibs/kdecore/kkeynative_x11.cpp (working copy)
@@ -106,12 +106,15 @@
return false;
}
- // FIXME: Accomadate non-standard layouts
// XKeysymToKeycode returns the wrong keycode for XK_Print and XK_Break.
// Specifically, it returns the code for SysReq instead of Print
- if( m_sym == XK_Print && !(m_mod & Mod1Mask) )
+ // Only do this for the default Xorg layout, other keycode mappings
+ // (e.g. evdev) don't need or want it.
+ if( m_sym == XK_Print && !(m_mod & Mod1Mask) &&
+ XKeycodeToKeysym( qt_xdisplay(), 111, 0 ) == XK_Print )
m_code = 111; // code for Print
- else if( m_sym == XK_Break || (m_sym == XK_Pause && (m_mod & ControlMask)) )
+ else if( m_sym == XK_Break || (m_sym == XK_Pause && (m_mod & ControlMask)) &&
+ XKeycodeToKeysym( qt_xdisplay(), 114, 0 ) == XK_Pause )
m_code = 114;
else
m_code = XKeysymToKeycode( qt_xdisplay(), m_sym );
Index: kdelibs/kdecore/kglobalaccel_x11.cpp
===================================================================
--- kdelibs/kdecore/kglobalaccel_x11.cpp (revision 604776)
+++ kdelibs/kdecore/kglobalaccel_x11.cpp (working copy)
@@ -169,7 +169,9 @@
uchar keyCodeX = key.code();
uint keyModX = key.mod() & g_keyModMaskXAccel; // Get rid of any non-relevant bits in mod
// HACK: make Alt+Print work
- if( key.sym() == XK_Sys_Req ) {
+ // only do this for the Xorg default keyboard keycodes,
+ // other mappings (e.g. evdev) don't need or want it
+ if( key.sym() == XK_Sys_Req && XKeycodeToKeysym( qt_xdisplay(), 111, 0 ) == XK_Print ) {
keyModX |= KKeyServer::modXAlt();
keyCodeX = 111;
}
Reply to: