[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31960] trunk/blender/intern/ghost/intern/ GHOST_SystemX11.cpp: Partial fix (Linux) [#21395] Command key for keyboard mapping not functional

Nathan Letwory nathan at letworyinteractive.com
Thu Sep 16 08:52:12 CEST 2010


Revision: 31960
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31960
Author:   jesterking
Date:     2010-09-16 08:52:12 +0200 (Thu, 16 Sep 2010)

Log Message:
-----------
Partial fix (Linux) [#21395] Command key for keyboard mapping not functional
Reported by Andy Braham

Handle XK_Super_L and XK_Super_R as the GHOST_kKeyCommand. Since Command key is
not discerned (yet) in left/right variants, read both and set accordingly.

This now completes fixes for [#21395]

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp	2010-09-16 06:28:11 UTC (rev 31959)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp	2010-09-16 06:52:12 UTC (rev 31960)
@@ -851,6 +851,8 @@
 	const KeyCode control_r = XKeysymToKeycode(m_display,XK_Control_R);
 	const KeyCode alt_l = XKeysymToKeycode(m_display,XK_Alt_L);
 	const KeyCode alt_r = XKeysymToKeycode(m_display,XK_Alt_R);
+	const KeyCode super_l = XKeysymToKeycode(m_display,XK_Super_L);
+	const KeyCode super_r = XKeysymToKeycode(m_display,XK_Super_R);
 
 	// Shift
 	if ((m_keyboard_vector[shift_l >> 3] >> (shift_l & 7)) & 1) {
@@ -888,6 +890,15 @@
 	} else {
 		keys.set(GHOST_kModifierKeyRightAlt,false);
 	}
+
+	// Super (Windows) - only one GHOST-kModifierKeyCommand, so mapping
+	// to either
+	if ( ((m_keyboard_vector[super_l >> 3] >> (super_l & 7)) & 1) || 
+	     ((m_keyboard_vector[super_r >> 3] >> (super_r & 7)) & 1) ) {
+		keys.set(GHOST_kModifierKeyCommand,true);
+	} else {
+		keys.set(GHOST_kModifierKeyCommand,false);
+	}
 	return GHOST_kSuccess;
 }
 
@@ -1095,6 +1106,8 @@
 			GXMAP(type,XK_Control_R,	GHOST_kKeyRightControl);
 			GXMAP(type,XK_Alt_L,	 	GHOST_kKeyLeftAlt);
 			GXMAP(type,XK_Alt_R,	 	GHOST_kKeyRightAlt);
+			GXMAP(type,XK_Super_L,		GHOST_kKeyCommand);
+			GXMAP(type,XK_Super_R,		GHOST_kKeyCommand);
 
 			GXMAP(type,XK_Insert,	 	GHOST_kKeyInsert);
 			GXMAP(type,XK_Delete,	 	GHOST_kKeyDelete);





More information about the Bf-blender-cvs mailing list