[PATCH evdev 2/2] Fix generation of proximity-in/out events.

Peter Hutterer peter.hutterer at who-t.net
Mon May 28 06:01:59 UTC 2018


From: Andrey Zabolotnyi <zapparello at ya.ru>

Invoking xf86PostProximityEvent with no valuators does nothing, so we
have to provide a valid valuator set to the call.

https://bugs.freedesktop.org/show_bug.cgi?id=104562

[whot: slight change from 104562
abs_vals is reset on every frame but old_vals is kept around to remember the
last value of the valuator (and is updated to the current values before
processing the frame). We expect the prox in to have x/y, so let's just
unconditionally use old_vals for proximity events.]

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/evdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/evdev.c b/src/evdev.c
index d07ee0a..6b5eadd 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -915,7 +915,7 @@ EvdevPostProximityEvents(InputInfoPtr pInfo, int which)
                 break;
             case EV_QUEUE_PROXIMITY:
                 if (pEvdev->queue[i].val == which)
-                    xf86PostProximityEvent(pInfo->dev, which, 0, 0);
+                    xf86PostProximityEventM(pInfo->dev, which, pEvdev->old_vals);
                 break;
         }
     }
-- 
2.14.3



More information about the xorg-devel mailing list