summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@freedesktop.org>2008-12-31 12:40:02 -0800
committerJeremy Huddleston <jeremyhu@freedesktop.org>2008-12-31 12:45:34 -0800
commit2f361186f93a791e446c4a9471bb0c3b9b818d98 (patch)
treec358c2c920dab9565da53514c3cb0350f2700811 /hw
parenta2abaa9fd3a5ad713c1f946e9d7f598825ad3a84 (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)
Diffstat (limited to 'hw')
-rw-r--r--hw/xquartz/X11Application.m7
-rw-r--r--hw/xquartz/darwinEvents.c11
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 0ecc17038..9a9483181 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -145,7 +145,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,
@@ -162,6 +161,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.
@@ -172,8 +172,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