Revision: 5117 http://tigervnc.svn.sourceforge.net/tigervnc/?rev=5117&view=rev Author: ossman_ Date: 2013-05-30 14:47:17 +0000 (Thu, 30 May 2013) Log Message: ----------- Even if we ignore the modifiers, we still have to respect the active group when we go looking for the level 3 shift key.
Modified Paths: -------------- trunk/unix/xserver/hw/vnc/InputXKB.cc Modified: trunk/unix/xserver/hw/vnc/InputXKB.cc =================================================================== --- trunk/unix/xserver/hw/vnc/InputXKB.cc 2013-05-29 12:37:37 UTC (rev 5116) +++ trunk/unix/xserver/hw/vnc/InputXKB.cc 2013-05-30 14:47:17 UTC (rev 5117) @@ -210,20 +210,25 @@ unsigned InputDevice::getLevelThreeMask(void) { + unsigned state; KeyCode keycode; XkbDescPtr xkb; XkbAction *act; - keycode = keysymToKeycode(XK_ISO_Level3_Shift, 0, NULL); + /* Group state is still important */ + state = getKeyboardState(); + state &= ~0xff; + + keycode = keysymToKeycode(XK_ISO_Level3_Shift, state, NULL); if (keycode == 0) { - keycode = keysymToKeycode(XK_Mode_switch, 0, NULL); + keycode = keysymToKeycode(XK_Mode_switch, state, NULL); if (keycode == 0) return 0; } xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; - act = XkbKeyActionPtr(xkb, keycode, 0); + act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) return 0; if (act->type != XkbSA_SetMods) @@ -338,7 +343,7 @@ xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc; - act = XkbKeyActionPtr(xkb, keycode, 0); + act = XkbKeyActionPtr(xkb, keycode, state); if (act == NULL) return 0; if (act->type != XkbSA_SetMods) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ Tigervnc-commits mailing list Tigervnc-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-commits