Summary: | KGlobalAccel conflicts with Mode_switch handling on SunRay | ||
---|---|---|---|
Product: | [Frameworks and Libraries] kdelibs | Reporter: | Nikita V. Youshchenko <yoush> |
Component: | general | Assignee: | Stephan Kulow <coolo> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ana, l.lunak |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Nikita V. Youshchenko
2005-03-29 14:24:46 UTC
Please use attachments for patches next time, I had to redo the patch manually. CVS commit by lunakl: Ignore also Mode Switch modifier. BUG: 102742 M +2 -1 kglobalaccel_x11.cpp 1.34 M +8 -0 kkeynative.h 1.14 M +1 -0 kkeynative_x11.cpp 1.24 M +4 -2 kkeyserver_x11.cpp 1.35 M +8 -0 kkeyserver_x11.h 1.17 --- kdelibs/kdecore/kglobalaccel_x11.cpp #1.33:1.34 @@ -69,5 +69,6 @@ static void calculateGrabMasks() KKeyServer::modXLock() | KKeyServer::modXNumLock() | - KKeyServer::modXScrollLock(); + KKeyServer::modXScrollLock() | + KKeyServer::modXModeSwitch(); //kdDebug() << "g_keyModMaskXAccel = " << g_keyModMaskXAccel // << "g_keyModMaskXOnOrOff = " << g_keyModMaskXOnOrOff << endl; --- kdelibs/kdecore/kkeynative.h #1.13:1.14 @@ -241,4 +241,12 @@ class KDECORE_EXPORT KKeyNative */ static uint modXScrollLock(); + + /** + * Returns the X11 Mode_switch modifier mask/flag. + * @return the X11 Mode_switch modifier mask/flag. + * @see accelModMaskX() + * @since 3.5 + */ + static uint modXModeSwitch(); #endif --- kdelibs/kdecore/kkeynative_x11.cpp #1.23:1.24 @@ -193,4 +193,5 @@ uint KKeyNative::modXNumLock() uint KKeyNative::modXLock() { return KKeyServer::modXLock(); } uint KKeyNative::modXScrollLock() { return KKeyServer::modXScrollLock(); } +uint KKeyNative::modXModeSwitch() { return KKeyServer::modXModeSwitch(); } #endif --- kdelibs/kdecore/kkeyserver_x11.cpp #1.34:1.35 @@ -325,5 +325,5 @@ static bool g_bInitializedMods, g_bIniti static bool g_bMacLabels; #ifdef Q_WS_X11 -static uint g_modXNumLock, g_modXScrollLock; +static uint g_modXNumLock, g_modXScrollLock, g_modXModeSwitch; bool initializeMods() @@ -331,5 +331,5 @@ bool initializeMods() XModifierKeymap* xmk = XGetModifierMapping( qt_xdisplay() ); - g_rgModInfo[3].modX = g_modXNumLock = g_modXScrollLock = 0; + g_rgModInfo[3].modX = g_modXNumLock = g_modXScrollLock = g_modXModeSwitch = 0; int min_keycode, max_keycode; @@ -355,4 +355,5 @@ bool initializeMods() case XK_Meta_R: if( !g_rgModInfo[3].modX ) g_rgModInfo[3].modX = mask; break; // Win alternate case XK_Scroll_Lock: g_modXScrollLock = mask; break; // Normally Mod5Mask + case XK_Mode_switch: g_modXModeSwitch = mask; break; } } @@ -610,4 +611,5 @@ uint modXNumLock() { if( !g_bInitiali uint modXWin() { if( !g_bInitializedMods ) { initializeMods(); } return g_rgModInfo[3].modX; } uint modXScrollLock() { if( !g_bInitializedMods ) { initializeMods(); } return g_modXScrollLock; } +uint modXModeSwitch() { if( !g_bInitializedMods ) { initializeMods(); } return g_modXModeSwitch; } uint accelModMaskX() --- kdelibs/kdecore/kkeyserver_x11.h #1.16:1.17 @@ -326,4 +326,12 @@ namespace KKeyServer /** + * Returns the X11 Mode_switch modifier mask/flag. + * @return the X11 Mode_switch modifier mask/flag. + * @see accelModMaskX() + * @since 3.5 + */ + KDECORE_EXPORT uint modXModeSwitch(); + + /** * Returns bitwise OR'ed mask containing Shift, Ctrl, Alt, and * Win (if available). |