xkb: don't attempt to filter events for devices without key classes.
Reported by Magnus Kessler. Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
This commit is contained in:
parent
a85f0d6b98
commit
a425abf0ea
|
@ -819,7 +819,8 @@ XkbSrvInfoPtr xkbi;
|
||||||
pXDev = inputInfo.keyboard;
|
pXDev = inputInfo.keyboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
xkbi= pXDev->key->xkbInfo;
|
xkbi= (pXDev->key) ? pXDev->key->xkbInfo : NULL;
|
||||||
|
|
||||||
if ( pClient->xkbClientFlags & _XkbClientInitialized ) {
|
if ( pClient->xkbClientFlags & _XkbClientInitialized ) {
|
||||||
if ((xkbDebugFlags&0x10)&&
|
if ((xkbDebugFlags&0x10)&&
|
||||||
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
|
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
|
||||||
|
@ -841,6 +842,10 @@ XkbSrvInfoPtr xkbi;
|
||||||
(_XkbIsReleaseEvent(xE[0].u.u.type)) ) {
|
(_XkbIsReleaseEvent(xE[0].u.u.type)) ) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!xkbi)
|
||||||
|
return True;
|
||||||
|
|
||||||
if ((pXDev->deviceGrab.grab != NullGrab)
|
if ((pXDev->deviceGrab.grab != NullGrab)
|
||||||
&& pXDev->deviceGrab.fromPassiveGrab &&
|
&& pXDev->deviceGrab.fromPassiveGrab &&
|
||||||
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
|
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
|
||||||
|
@ -884,6 +889,9 @@ XkbSrvInfoPtr xkbi;
|
||||||
else {
|
else {
|
||||||
register CARD8 type;
|
register CARD8 type;
|
||||||
|
|
||||||
|
if (!xkbi)
|
||||||
|
return True;
|
||||||
|
|
||||||
for (i=0;i<nEvents;i++) {
|
for (i=0;i<nEvents;i++) {
|
||||||
type= xE[i].u.u.type;
|
type= xE[i].u.u.type;
|
||||||
if ((xkbDebugFlags&0x4)&&
|
if ((xkbDebugFlags&0x4)&&
|
||||||
|
|
Loading…
Reference in New Issue