winex11.drv: Fixed XInput2 errors with mislabeled mice axis.

Cope, Christopher Edward ccope3 at utk.edu
Sat Apr 27 18:41:41 CDT 2013


---
  dlls/winex11.drv/mouse.c |   10 +++-------
  1 files changed, 3 insertions(+), 7 deletions(-)
-------------- next part --------------
>From bc99b22a5451db9f8ddb21c7a246d6737028b738 Mon Sep 17 00:00:00 2001
From: Christopher Cope <ccope3 at utk.edu>
Date: Sat, 27 Apr 2013 19:23:20 -0400
Subject: winex11.drv: Fixed XInput2 errors with mislabeled mice axis.

---
 dlls/winex11.drv/mouse.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index 168914f..4a96240 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -285,9 +285,7 @@ static void enable_xinput2(void)
                    devices[i].deviceid, debugstr_a(devices[i].name),
                    class->number, class->min, class->max, class->resolution, class->mode,
                    XGetAtomName( data->display, class->label ));
-            if (class->label == x11drv_atom( Rel_X ) || class->label == x11drv_atom( Rel_Y )) count++;
-            /* workaround for drivers that don't provide labels */
-            if (!class->label && class->number <= 1 && class->mode == XIModeRelative) count++;
+            if (class->label == x11drv_atom( Rel_X ) || class->label == x11drv_atom( Rel_Y ) || class->mode == XIModeRelative) count++;
         }
         if (count < 2) continue;
         TRACE( "Using %u (%s) as core pointer\n",
@@ -1638,16 +1636,14 @@ static void X11DRV_RawMotion( XGenericEventCookie *xev )
             if (XIMaskIsSet( event->valuators.mask, class->number ))
             {
                 double val = *values++;
-                if (class->label == x11drv_atom( Rel_X ) ||
-                    (!class->label && class->number == 0 && class->mode == XIModeRelative))
+                if (class->label == x11drv_atom( Rel_X ) || class->mode == XIModeRelative)
                 {
                     input.u.mi.dx = dx = val;
                     if (class->min < class->max)
                         input.u.mi.dx = val * (virtual_screen_rect.right - virtual_screen_rect.left)
                                             / (class->max - class->min);
                 }
-                else if (class->label == x11drv_atom( Rel_Y ) ||
-                         (!class->label && class->number == 1 && class->mode == XIModeRelative))
+                else if (class->label == x11drv_atom( Rel_Y ) || class->mode == XIModeRelative)
                 {
                     input.u.mi.dy = dy = val;
                     if (class->min < class->max)
-- 
1.7.9



More information about the wine-patches mailing list