xkb: factor out the StateNotify flag check
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
fdb4ec86c2
commit
dda2468e57
|
@ -1127,6 +1127,22 @@ _XkbApplyFilters(XkbSrvInfoPtr xkbi, unsigned kc, XkbAction *pAction)
|
||||||
return send;
|
return send;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_XkbEnsureStateChange(XkbSrvInfoPtr xkbi)
|
||||||
|
{
|
||||||
|
Bool genStateNotify = FALSE;
|
||||||
|
|
||||||
|
/* The state may change, so if we're not in the middle of sending a state
|
||||||
|
* notify, prepare for it */
|
||||||
|
if ((xkbi->flags & _XkbStateNotifyInProgress) == 0) {
|
||||||
|
xkbi->prev_state = xkbi->state;
|
||||||
|
xkbi->flags |= _XkbStateNotifyInProgress;
|
||||||
|
genStateNotify = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return genStateNotify;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XkbHandleActions(DeviceIntPtr dev, DeviceIntPtr kbd, DeviceEvent *event)
|
XkbHandleActions(DeviceIntPtr dev, DeviceIntPtr kbd, DeviceEvent *event)
|
||||||
{
|
{
|
||||||
|
@ -1146,15 +1162,8 @@ XkbHandleActions(DeviceIntPtr dev, DeviceIntPtr kbd, DeviceEvent *event)
|
||||||
keyc = kbd->key;
|
keyc = kbd->key;
|
||||||
xkbi = keyc->xkbInfo;
|
xkbi = keyc->xkbInfo;
|
||||||
key = event->detail.key;
|
key = event->detail.key;
|
||||||
/* The state may change, so if we're not in the middle of sending a state
|
|
||||||
* notify, prepare for it */
|
genStateNotify = _XkbEnsureStateChange(xkbi);
|
||||||
if ((xkbi->flags & _XkbStateNotifyInProgress) == 0) {
|
|
||||||
xkbi->prev_state = xkbi->state;
|
|
||||||
xkbi->flags |= _XkbStateNotifyInProgress;
|
|
||||||
genStateNotify = TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
genStateNotify = FALSE;
|
|
||||||
|
|
||||||
xkbi->clearMods = xkbi->setMods = 0;
|
xkbi->clearMods = xkbi->setMods = 0;
|
||||||
xkbi->groupChange = 0;
|
xkbi->groupChange = 0;
|
||||||
|
|
Loading…
Reference in New Issue