[PATCH sis] Use miPointerSetPosition, not miPointerAbsoluteCursor
Peter Hutterer
peter.hutterer at who-t.net
Tue Jan 3 19:26:30 PST 2012
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.hutterer at 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
More information about the xorg-devel
mailing list