[PATCH evdev 4/4] When posting buttons, post absolute valuators if we have them.

Peter Hutterer peter.hutterer at who-t.net
Sun Oct 10 16:23:22 PDT 2010


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/evdev.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/evdev.c b/src/evdev.c
index 1775ad9..1720f96 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -661,11 +661,16 @@ static void EvdevPostQueuedEvents(InputInfoPtr pInfo, int num_v, int first_v,
                                   pEvdev->queue[i].val);
             break;
         case EV_QUEUE_BTN:
-            /* FIXME: Add xf86PostButtonEventP to the X server so that we may
-             * pass the valuators on ButtonPress/Release events, too.  Currently
-             * only MotionNotify events contain the pointer position. */
-            xf86PostButtonEvent(pInfo->dev, 0, pEvdev->queue[i].key,
-                                pEvdev->queue[i].val, 0, 0);
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+            if (pEvdev->abs && pEvdev->tool) {
+                xf86PostButtonEventP(pInfo->dev, 1, pEvdev->queue[i].key,
+                                     pEvdev->queue[i].val, first_v, num_v,
+                                     v + first_v);
+
+            } else
+#endif
+                xf86PostButtonEvent(pInfo->dev, 0, pEvdev->queue[i].key,
+                                    pEvdev->queue[i].val, 0, 0);
             break;
         }
     }
-- 
1.7.2.3



More information about the xorg-devel mailing list