If the increment is 0 but this is a scroll axis, it's definitely a bug.
Nonetheless, it has happened, so put a warning in and a return statement
that we avoid the infinite loop and hopefully be able to reproduce later.

Signed-off-by: Peter Hutterer <[email protected]>
---
obviously a stopgap, but I think this is the bug I'm seeing on resume,
every once in a while. Unfortunately, I didn't get more info out of it but
this should at least work around it for now.

 dix/getevents.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dix/getevents.c b/dix/getevents.c
index 3c27aef..8eb8247 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1428,6 +1428,10 @@ emulate_scroll_button_events(InternalEvent *events,
     ax = &dev->valuator->axes[axis];
     incr = ax->scroll.increment;
 
+    BUG_WARN_MSG(incr == 0, "for device %s\n", dev->name);
+    if (incr == 0)
+        return 0;
+
     if (type != ButtonPress && type != ButtonRelease)
         flags |= POINTER_EMULATED;
 
-- 
1.7.7.6

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to