Revision: 5082 http://tigervnc.svn.sourceforge.net/tigervnc/?rev=5082&view=rev Author: ossman_ Date: 2013-04-16 09:03:18 +0000 (Tue, 16 Apr 2013) Log Message: ----------- Shifted Tab is a generic VNC problem and not specific to just Core keyboard. Move handling of it to the central code.
Modified Paths: -------------- trunk/unix/xserver/hw/vnc/Input.cc trunk/unix/xserver/hw/vnc/InputCore.cc Modified: trunk/unix/xserver/hw/vnc/Input.cc =================================================================== --- trunk/unix/xserver/hw/vnc/Input.cc 2013-04-15 15:19:12 UTC (rev 5081) +++ trunk/unix/xserver/hw/vnc/Input.cc 2013-04-16 09:03:18 UTC (rev 5082) @@ -511,6 +511,22 @@ } /* + * "Shifted Tab" is a bit of a mess. Some systems have varying, + * special keysyms for this symbol. VNC mandates that clients + * should always send the plain XK_Tab keysym and the server + * should deduce the meaning based on current Shift state. + * To comply with this, we will find the keycode that sends + * XK_Tab, and make sure that Shift isn't cleared. This can + * possibly result in a different keysym than XK_Tab, but that + * is the desired behaviour. + * + * Note: We never get ISO_Left_Tab here because it's already + * been translated in VNCSConnectionST. + */ + if (keysym == XK_Tab && (state & ShiftMask)) + new_state |= ShiftMask; + + /* * We need a bigger state change than just shift, * so we need to know what the mask is for level 3 shifts. */ Modified: trunk/unix/xserver/hw/vnc/InputCore.cc =================================================================== --- trunk/unix/xserver/hw/vnc/InputCore.cc 2013-04-15 15:19:12 UTC (rev 5081) +++ trunk/unix/xserver/hw/vnc/InputCore.cc 2013-04-16 09:03:18 UTC (rev 5082) @@ -441,22 +441,6 @@ if (j & 0x2) *new_state |= mask; - /* - * Sort out the "shifted Tab" mess. If - * we are sent a shifted Tab, generate - * a local shifted Tab regardless of - * what the "shifted Tab" keysym is on - * the local keyboard (it might be Tab, - * ISO_Left_Tab or HP's private BackTab - * keysym, and quite possibly some - * others too). We never get - * ISO_Left_Tab here because it's - * already been translated in - * VNCSConnectionST. - */ - if (keysym == XK_Tab && (state & ShiftMask)) - *new_state |= ShiftMask; - return i; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Tigervnc-commits mailing list Tigervnc-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-commits