mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
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:
@@ -499,14 +499,18 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
|
||||
if ((type == ButtonPress || type == ButtonRelease) && !pDev->button)
|
||||
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)
|
||||
num_events = 2;
|
||||
else
|
||||
num_events = 1;
|
||||
|
||||
if (type == MotionNotify && num_valuators <= 0) {
|
||||
if (type == MotionNotify && num_valuators <= 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Do we need to send a DeviceValuator event? */
|
||||
if (!coreOnly && sendValuators) {
|
||||
|
||||
Reference in New Issue
Block a user