summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2006-11-16 20:43:27 +1030
committerPeter Hutterer <whot@hyena.localdomain>2006-11-16 20:43:27 +1030
commit5388423eb05daefcc71067b6ab96b6e57c44ef5c (patch)
tree287e07e906b26d1f15e45fc35687ebba711d5140
parentc957a16180810fbd58526e1a670d82384fb4a61d (diff)
mieq: EQ processing handles MP devices
global: MPX define added to xorg-server.h.in xfree86/common: small fix to avoid byte overflow
-rw-r--r--Changelog12
-rw-r--r--hw/xfree86/common/xf86Xinput.c5
-rw-r--r--include/xorg-server.h.in3
-rw-r--r--mi/mieq.c26
4 files changed, 44 insertions, 2 deletions
diff --git a/Changelog b/Changelog
index 3b5e9add3..87501fb3a 100644
--- a/Changelog
+++ b/Changelog
@@ -37,3 +37,15 @@ Files:
hw/xfree86/common/xf86Xinput.c
include/inputstr.h
mi/mieq.c
+
+
+mieq: EQ processing handles MP devices
+
+global: MPX define added to xorg-server.h.in
+
+xfree86/common: small fix to avoid byte overflow
+
+Files:
+ mi/mieq.c
+ hw/xfree86/common/xf86Xinput.c
+ include/xserver-config.h.in
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 888ad4235..2cb1441db 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -215,7 +215,10 @@ xf86ActivateDevice(LocalDevicePtr local)
dev->coreEvents = local->flags & XI86_ALWAYS_CORE;
#ifdef MPX
- dev->isMPDev = local->flags & XI86_MP_DEVICE;
+ if (local->flags & XI86_MP_DEVICE)
+ dev->isMPDev = TRUE;
+ else
+ dev->isMPDev = FALSE;
#endif
RegisterOtherDevice(dev);
diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
index 48196d8b6..c58e2b39a 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
@@ -142,6 +142,9 @@
/* Support X Input extension */
#undef XINPUT
+/* Support MPX multipointer extension */
+#undef MPX
+
/* Build XKB */
#undef XKB
diff --git a/mi/mieq.c b/mi/mieq.c
index b901fbcd6..d19933520 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -24,6 +24,15 @@ in this Software without prior written authorization from The Open Group.
*
* Author: Keith Packard, MIT X Consortium
*/
+#ifdef MPX
+ /*
+ * MPX additions:
+ * Copyright © 2006 Peter Hutterer
+ * License see above.
+ * Author: Peter Hutterer <peter@cs.unisa.edu.au>
+ *
+ */
+#endif
/*
* mieq.c
@@ -218,13 +227,28 @@ mieqProcessInputEvents()
else if (e->event[0].u.u.type == MotionNotify ||
e->event[0].u.u.type == ButtonPress ||
e->event[0].u.u.type == ButtonRelease) {
- SwitchCorePointer(e->pDev);
+#ifdef MPX
+ if (!e->pDev->isMPDev)
+#endif
+ SwitchCorePointer(e->pDev);
dev = inputInfo.pointer;
+
}
else {
dev = e->pDev;
}
+#ifdef MPX
+ /* MPX devices send both core and Xi events. Depending on what
+ * event we have, dev is set to either the core pointer or the
+ * device. This gives us the right processing function but we need
+ * to pass the right device in too.
+ * Any device that is not a MP device is processed as usual.
+ */
+ if (e->pDev->isMPDev)
+ dev->public.processInputProc(e->event, e->pDev, e->nevents);
+ else
+#endif
dev->public.processInputProc(e->event, dev, e->nevents);
}
}