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)
This commit is contained in:
parent
a2abaa9fd3
commit
2f361186f9
|
@ -977,13 +977,6 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe
|
||||||
|
|
||||||
modifierFlags = [e modifierFlags];
|
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
|
#ifdef NX_DEVICELCMDKEYMASK
|
||||||
/* This is to workaround a bug in the VNC server where we sometimes see the L
|
/* This is to workaround a bug in the VNC server where we sometimes see the L
|
||||||
* modifier and sometimes see no "side"
|
* modifier and sometimes see no "side"
|
||||||
|
|
|
@ -145,7 +145,6 @@ static void DarwinPressModifierKey(int pressed, int key) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int modifier_mask_list[] = {
|
static int modifier_mask_list[] = {
|
||||||
NX_SECONDARYFNMASK, NX_NUMERICPADMASK, NX_HELPMASK,
|
|
||||||
#ifdef NX_DEVICELCMDKEYMASK
|
#ifdef NX_DEVICELCMDKEYMASK
|
||||||
NX_DEVICELCTLKEYMASK, NX_DEVICERCTLKEYMASK,
|
NX_DEVICELCTLKEYMASK, NX_DEVICERCTLKEYMASK,
|
||||||
NX_DEVICELSHIFTKEYMASK, NX_DEVICERSHIFTKEYMASK,
|
NX_DEVICELSHIFTKEYMASK, NX_DEVICERSHIFTKEYMASK,
|
||||||
|
@ -162,6 +161,7 @@ static void DarwinUpdateModifiers(
|
||||||
int flags ) // modifier flags that have changed
|
int flags ) // modifier flags that have changed
|
||||||
{
|
{
|
||||||
int *f;
|
int *f;
|
||||||
|
int key;
|
||||||
|
|
||||||
/* Capslock is special. This mask is the state of capslock (on/off),
|
/* 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.
|
* 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++)
|
for(f=modifier_mask_list; *f; f++)
|
||||||
if(*f & flags)
|
if(*f & flags) {
|
||||||
DarwinPressModifierKey(pressed, DarwinModifierNXMaskToNXKey(*f));
|
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
|
/* Generic handler for Xquartz-specifc events. When possible, these should
|
||||||
|
|
Loading…
Reference in New Issue