Input: GetPointerEvents: Deny events from devices without valuators
For some reason, my keyboard has 25 mouse buttons, but zero valuators. This causes GPE to blow up spectacularly, trying to get (and set) co-ordinates from devices without valuators. For now, just prevent this from ever happening, and whack a dirty great FIXME in.
This commit is contained in:
parent
7c9e8fd56e
commit
4d238c5c67
|
@ -499,14 +499,18 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
|
||||||
if ((type == ButtonPress || type == ButtonRelease) && !pDev->button)
|
if ((type == ButtonPress || type == ButtonRelease) && !pDev->button)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/* FIXME: I guess it should, in theory, be possible to post button events
|
||||||
|
* from devices without valuators. */
|
||||||
|
if (!pDev->valuator)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (!coreOnly && pDev->coreEvents)
|
if (!coreOnly && pDev->coreEvents)
|
||||||
num_events = 2;
|
num_events = 2;
|
||||||
else
|
else
|
||||||
num_events = 1;
|
num_events = 1;
|
||||||
|
|
||||||
if (type == MotionNotify && num_valuators <= 0) {
|
if (type == MotionNotify && num_valuators <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
/* Do we need to send a DeviceValuator event? */
|
/* Do we need to send a DeviceValuator event? */
|
||||||
if (!coreOnly && sendValuators) {
|
if (!coreOnly && sendValuators) {
|
||||||
|
|
Loading…
Reference in New Issue