[PATCH v2] dix: don't BUG_WARN for button events from button-only device
Daniel Kurtz
djkurtz at chromium.org
Thu Mar 29 18:12:22 PDT 2012
Events from button-only devices still need coordinates, and they get them
from scale_to_desktop(). Therefore, a dev without valuators is not a bug.
However, a dev with valuators, but less than two of them still is a bug.
This was noticed when unplugging a "Creative Technology SB Arena Headset",
which has some BTNs and some KEYs, but no REL or ABS valuators.
It emits [BTN_3] = 0 on unplug, which would trigger the BUG_WARN.
Signed-off-by: Daniel Kurtz <djkurtz at chromium.org>
---
dix/getevents.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dix/getevents.c b/dix/getevents.c
index 151d82a..06390cd 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -838,7 +838,7 @@ scale_to_desktop(DeviceIntPtr dev, ValuatorMask *mask,
ScreenPtr scr = miPointerGetScreen(dev);
double x, y;
- BUG_WARN(!dev->valuator || dev->valuator->numAxes < 2);
+ BUG_WARN(dev->valuator && dev->valuator->numAxes < 2);
if (!dev->valuator || dev->valuator->numAxes < 2)
{
/* if we have no axes, last.valuators must be in screen coords
--
1.7.7.3
More information about the xorg-devel
mailing list