Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/ghost/intern/GHOST_SystemX11.cpp')
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.cpp126
1 files changed, 40 insertions, 86 deletions
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index 49c330dfd58..3ebd24c008b 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -76,6 +76,9 @@
#include <stdio.h> // for fprintf only
#include <cstdlib> // for exit
+static GHOST_TKey
+convertXKey(KeySym key);
+
typedef struct NDOFPlatformInfo {
Display *display;
Window window;
@@ -856,60 +859,28 @@ getModifierKeys(
// now translate key symobols into keycodes and
// test with vector.
- const KeyCode shift_l = XKeysymToKeycode(m_display,XK_Shift_L);
- const KeyCode shift_r = XKeysymToKeycode(m_display,XK_Shift_R);
- const KeyCode control_l = XKeysymToKeycode(m_display,XK_Control_L);
- 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) {
- keys.set(GHOST_kModifierKeyLeftShift,true);
- } else {
- keys.set(GHOST_kModifierKeyLeftShift,false);
- }
- if ((m_keyboard_vector[shift_r >> 3] >> (shift_r & 7)) & 1) {
-
- keys.set(GHOST_kModifierKeyRightShift,true);
- } else {
- keys.set(GHOST_kModifierKeyRightShift,false);
- }
-
- // control (weep)
- if ((m_keyboard_vector[control_l >> 3] >> (control_l & 7)) & 1) {
- keys.set(GHOST_kModifierKeyLeftControl,true);
- } else {
- keys.set(GHOST_kModifierKeyLeftControl,false);
- }
- if ((m_keyboard_vector[control_r >> 3] >> (control_r & 7)) & 1) {
- keys.set(GHOST_kModifierKeyRightControl,true);
- } else {
- keys.set(GHOST_kModifierKeyRightControl,false);
- }
+ const static KeyCode shift_l = XKeysymToKeycode(m_display,XK_Shift_L);
+ const static KeyCode shift_r = XKeysymToKeycode(m_display,XK_Shift_R);
+ const static KeyCode control_l = XKeysymToKeycode(m_display,XK_Control_L);
+ const static KeyCode control_r = XKeysymToKeycode(m_display,XK_Control_R);
+ const static KeyCode alt_l = XKeysymToKeycode(m_display,XK_Alt_L);
+ const static KeyCode alt_r = XKeysymToKeycode(m_display,XK_Alt_R);
+ const static KeyCode super_l = XKeysymToKeycode(m_display,XK_Super_L);
+ const static KeyCode super_r = XKeysymToKeycode(m_display,XK_Super_R);
+
+ // shift
+ keys.set(GHOST_kModifierKeyLeftShift, ((m_keyboard_vector[shift_l >> 3] >> (shift_l & 7)) & 1) != 0);
+ keys.set(GHOST_kModifierKeyRightShift, ((m_keyboard_vector[shift_r >> 3] >> (shift_r & 7)) & 1) != 0);
+ // control
+ keys.set(GHOST_kModifierKeyLeftControl, ((m_keyboard_vector[control_l >> 3] >> (control_l & 7)) & 1) != 0);
+ keys.set(GHOST_kModifierKeyRightControl, ((m_keyboard_vector[control_r >> 3] >> (control_r & 7)) & 1) != 0);
+ // alt
+ keys.set(GHOST_kModifierKeyLeftAlt, ((m_keyboard_vector[alt_l >> 3] >> (alt_l & 7)) & 1) != 0);
+ keys.set(GHOST_kModifierKeyRightAlt, ((m_keyboard_vector[alt_r >> 3] >> (alt_r & 7)) & 1) != 0);
+ // super (windows) - only one GHOST-kModifierKeyOS, so mapping to either
+ keys.set(GHOST_kModifierKeyOS, ( ((m_keyboard_vector[super_l >> 3] >> (super_l & 7)) & 1) ||
+ ((m_keyboard_vector[super_r >> 3] >> (super_r & 7)) & 1) ) != 0);
- // Alt (yawn)
- if ((m_keyboard_vector[alt_l >> 3] >> (alt_l & 7)) & 1) {
- keys.set(GHOST_kModifierKeyLeftAlt,true);
- } else {
- keys.set(GHOST_kModifierKeyLeftAlt,false);
- }
- if ((m_keyboard_vector[alt_r >> 3] >> (alt_r & 7)) & 1) {
- keys.set(GHOST_kModifierKeyRightAlt,true);
- } else {
- keys.set(GHOST_kModifierKeyRightAlt,false);
- }
-
- // Super (Windows) - only one GHOST-kModifierKeyOS, 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_kModifierKeyOS,true);
- } else {
- keys.set(GHOST_kModifierKeyOS,false);
- }
return GHOST_kSuccess;
}
@@ -923,35 +894,20 @@ getButtons(
int rx,ry,wx,wy;
unsigned int mask_return;
- if (XQueryPointer(
- m_display,
- RootWindow(m_display,DefaultScreen(m_display)),
- &root_return,
- &child_return,
- &rx,&ry,
- &wx,&wy,
- &mask_return
- ) == False) {
+ if (XQueryPointer(m_display,
+ RootWindow(m_display,DefaultScreen(m_display)),
+ &root_return,
+ &child_return,
+ &rx,&ry,
+ &wx,&wy,
+ &mask_return) == True)
+ {
+ buttons.set(GHOST_kButtonMaskLeft, (mask_return & Button1Mask) != 0);
+ buttons.set(GHOST_kButtonMaskMiddle, (mask_return & Button2Mask) != 0);
+ buttons.set(GHOST_kButtonMaskRight, (mask_return & Button3Mask) != 0);
+ }
+ else {
return GHOST_kFailure;
- } else {
-
- if (mask_return & Button1Mask) {
- buttons.set(GHOST_kButtonMaskLeft,true);
- } else {
- buttons.set(GHOST_kButtonMaskLeft,false);
- }
-
- if (mask_return & Button2Mask) {
- buttons.set(GHOST_kButtonMaskMiddle,true);
- } else {
- buttons.set(GHOST_kButtonMaskMiddle,false);
- }
-
- if (mask_return & Button3Mask) {
- buttons.set(GHOST_kButtonMaskRight,true);
- } else {
- buttons.set(GHOST_kButtonMaskRight,false);
- }
}
return GHOST_kSuccess;
@@ -1056,11 +1012,9 @@ generateWindowExposeEvents(
#define GXMAP(k,x,y) case x: k = y; break;
- GHOST_TKey
-GHOST_SystemX11::
-convertXKey(
- KeySym key
-){
+static GHOST_TKey
+convertXKey(KeySym key)
+{
GHOST_TKey type;
if ((key >= XK_A) && (key <= XK_Z)) {