miPointerAbsoluteCursor was removed in '09.

Technically this shouldn't just work on the VCP since any master pointer may
end up in the dead area. However, I suspect the Venn diagramm of MPX users
and sis merged framebuffer users shows little overlap.

miPointerSetPosition's prototype changed a few times, these are a bunch of
untested ifdefs that should be correct according to the git history.

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
I do wonder why I bothered. The way I read this is that this code would have
had unresolved symbols since server 1.6 and no-one complained.

 src/sis_driver.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/src/sis_driver.c b/src/sis_driver.c
index 6f7a15e..3218239 100644
--- a/src/sis_driver.c
+++ b/src/sis_driver.c
@@ -85,6 +85,10 @@
 #include <X11/extensions/dpms.h>
 #endif
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
+#include <inputstr.h> /* for inputInfo */
+#endif
+
 
 #ifdef XF86DRI
 #include "dri.h"
@@ -9346,9 +9350,22 @@ SISMergedPointerMoved(int scrnIndex, int x, int y)
        }
      }
      if(doit) {
-       UpdateCurrentTime();
        sigstate = xf86BlockSIGIO();
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
+        {
+            double dx = x, dy = y;
+            miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy);
+            x = (int)dx;
+            y = (int)dy;
+        }
+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+       miPointerSetPosition(inputInfo.pointer, Absolute, x, y);
+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 5
+       miPointerSetPosition(inputInfo.pointer, x, y);
+#else
+       UpdateCurrentTime();
        miPointerAbsoluteCursor(x, y, currentTime.milliseconds);
+#endif
        xf86UnblockSIGIO(sigstate);
        return;
      }
-- 
1.7.7.4

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to