On Mon, Aug 19, 2013 at 05:17:32PM +0100, Daniel Stone wrote:
> Hi,
> 
> On 19 August 2013 10:14, Thomas Klausner <[email protected]> wrote:
> > +       case WSCONS_EVENT_MOUSE_ABSOLUTE_X:
> > +           miPointerGetPosition (pInfo->dev, &x, &y);
> > +           x = event->value;
> > +           miPointerSetPosition (pInfo->dev, Absolute, (double *)&x, 
> > (double *)&y);
> > +           xf86PostMotionEvent(pInfo->dev, TRUE, 0, 2, x, y);
> > +           ++event;
> > +           continue;
> 
> Please eliminate the mipointer calls, and replace them with:
> xf86PostMotionEvent(pInfo->dev, TRUE, 0, 1, x);
> 
> > +       case WSCONS_EVENT_MOUSE_ABSOLUTE_Y:
> > +           miPointerGetPosition (pInfo->dev, &x, &y);
> > +           y = event->value;
> > +           miPointerSetPosition (pInfo->dev, Absolute, (double *)&x, 
> > (double *)&y);
> > +           xf86PostMotionEvent(pInfo->dev, TRUE, 0, 2, x, y);
> > +           ++event;
> > +           continue;
> 
> And similarly this with:
> xf86PostMotionEvent(pInfo->dev, TRUE, 1, 1, y);

Thanks for the review! New version attached, please check if I
understood correctly.
 Thomas
>From 8132691ab2a1149a29ab6d03e532840dbb9cab90 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <[email protected]>
Date: Mon, 19 Aug 2013 10:46:36 +0200
Subject: [PATCH:xf86-input-mouse 2/4] Add support for absolute positioning
 (tablets).

>From Pierre Pronchery <[email protected]>
and review comments by Daniel Stone <[email protected]>.
Signed-off-by: Thomas Klausner <[email protected]>
---
 src/bsd_mouse.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/bsd_mouse.c b/src/bsd_mouse.c
index 98e5ff3..a2c8ec7 100644
--- a/src/bsd_mouse.c
+++ b/src/bsd_mouse.c
@@ -407,7 +407,7 @@ wsconsReadInput(InputInfoPtr pInfo)
     n /= sizeof(struct wscons_event);
     while( n-- ) {
         int buttons = pMse->lastButtons;
-        int dx = 0, dy = 0, dz = 0, dw = 0;
+        int dx = 0, dy = 0, dz = 0, dw = 0, x, y;
         switch (event->type) {
         case WSCONS_EVENT_MOUSE_UP:
 #define BUTBIT (1 << (event->value <= 2 ? 2 - event->value : event->value))
@@ -432,6 +432,26 @@ wsconsReadInput(InputInfoPtr pInfo)
             dw = event->value;
             break;
 #endif
+       case WSCONS_EVENT_MOUSE_ABSOLUTE_X:
+           x = event->value;
+           xf86PostMotionEvent(pInfo->dev, TRUE, 0, 1, x);
+           ++event;
+           continue;
+       case WSCONS_EVENT_MOUSE_ABSOLUTE_Y:
+           y = event->value;
+           xf86PostMotionEvent(pInfo->dev, TRUE, 1, 1, y);
+           ++event;
+           continue;
+#ifdef WSCONS_EVENT_MOUSE_ABSOLUTE_Z
+       case WSCONS_EVENT_MOUSE_ABSOLUTE_Z:
+           ++event;
+           continue;
+#endif
+#ifdef WSCONS_EVENT_MOUSE_ABSOLUTE_W
+       case WSCONS_EVENT_MOUSE_ABSOLUTE_W:
+           ++event;
+           continue;
+#endif
         default:
             LogMessageVerbSigSafe(X_WARNING, -1,
                                   "%s: bad wsmouse event type=%d\n", 
pInfo->name,
-- 
1.8.3.3

_______________________________________________
[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