diff options
author | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2008-12-31 12:40:02 -0800 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2008-12-31 12:45:31 -0800 |
commit | 0676a580fcc05d54049269028a34358935a4101c (patch) | |
tree | c8e24eb60d8f339cd99901a5dbc13e5f2b8a3bcf | |
parent | 0d2621b6d4684ec62e67156a5a9dbdd3297f9cb0 (diff) |
XQuartz: Don't use NX_SECONDARYFNMASK, NX_NUMERICPADMASK, NX_HELPMASK
We don't have keycodes for them, so don't try to use them
(cherry picked from commit cb912aca3a2834c4ad8e386c8a0d05c1bb31b0e7)
-rw-r--r-- | hw/xquartz/X11Application.m | 7 | ||||
-rw-r--r-- | hw/xquartz/darwinEvents.c | 11 |
2 files changed, 8 insertions, 10 deletions
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index cd5ab5c2b..2cebd2aff 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -977,13 +977,6 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe modifierFlags = [e modifierFlags]; - /* These are the "only" modifier keys we care about */ - modifierFlags &= (NX_COMMANDMASK | NX_CONTROLMASK | NX_ALTERNATEMASK | NX_SHIFTMASK | - NX_SECONDARYFNMASK | NX_ALPHASHIFTMASK | NX_NUMERICPADMASK | - NX_HELPMASK | NX_DEVICELCTLKEYMASK | NX_DEVICELSHIFTKEYMASK | - NX_DEVICERSHIFTKEYMASK | NX_DEVICELCMDKEYMASK | NX_DEVICERCMDKEYMASK | - NX_DEVICELALTKEYMASK | NX_DEVICERALTKEYMASK | NX_DEVICERCTLKEYMASK); - #ifdef NX_DEVICELCMDKEYMASK /* This is to workaround a bug in the VNC server where we sometimes see the L * modifier and sometimes see no "side" diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c index 7fc390d1e..37f0bfb45 100644 --- a/hw/xquartz/darwinEvents.c +++ b/hw/xquartz/darwinEvents.c @@ -146,7 +146,6 @@ static void DarwinPressModifierKey(int pressed, int key) { */ static int modifier_mask_list[] = { - NX_SECONDARYFNMASK, NX_NUMERICPADMASK, NX_HELPMASK, #ifdef NX_DEVICELCMDKEYMASK NX_DEVICELCTLKEYMASK, NX_DEVICERCTLKEYMASK, NX_DEVICELSHIFTKEYMASK, NX_DEVICERSHIFTKEYMASK, @@ -163,6 +162,7 @@ static void DarwinUpdateModifiers( int flags ) // modifier flags that have changed { int *f; + int key; /* Capslock is special. This mask is the state of capslock (on/off), * not the state of the button. Hopefully we can find a better solution. @@ -173,8 +173,13 @@ static void DarwinUpdateModifiers( } for(f=modifier_mask_list; *f; f++) - if(*f & flags) - DarwinPressModifierKey(pressed, DarwinModifierNXMaskToNXKey(*f)); + if(*f & flags) { + key = DarwinModifierNXMaskToNXKey(*f); + if(key == -1) + ErrorF("DarwinUpdateModifiers: Unsupported NXMask: 0x%x\n", *f); + else + DarwinPressModifierKey(pressed, key); + } } /* Generic handler for Xquartz-specifc events. When possible, these should |