summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2006-12-20 14:43:38 +1030
committerPeter Hutterer <whot@hyena.localdomain>2006-12-20 14:43:38 +1030
commitb55e1239ac3b2962a33d8af1f911cc0f01f40f23 (patch)
tree370f8563ad4b376cbe3eec1cb0351ab3df794325
parent202b46eb6bf0d5f94973c2bf1e4ebe9d154eadbf (diff)
xfree86: fix xf86ActivateDevice(): only set to MP device if not a keyboard
-rw-r--r--Changelog9
-rw-r--r--Xi/extinit.c15
-rw-r--r--hw/xfree86/common/xf86Xinput.c3
-rw-r--r--include/extinit.h4
4 files changed, 30 insertions, 1 deletions
diff --git a/Changelog b/Changelog
index f69846509..01bc1e8b1 100644
--- a/Changelog
+++ b/Changelog
@@ -21,6 +21,15 @@ Files:
Note: This commit requires libXi additions to use the new functions.
+____________________________________________________________
+
+xfree86: fix xf86ActivateDevice(): only set to MP device if not a keyboard
+
+Files:
+ hw/xfree86/common/xf86Xinput.c
+ include/extinit.h
+ Xi/extinit.c
+
== 18.12.06 ==
mi: removing MPX ifdefs
global sprite renaming in mipointer and misprite
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 161995883..7c737a143 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -868,6 +868,21 @@ AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name)
/***********************************************************************
*
+ * Returns true if a device may require a pointer (is not a keyboard).
+ *
+ */
+_X_EXPORT Bool
+MayNeedPointer(DeviceIntPtr dev)
+{
+ /* return false if device is a keyboard */
+ if (dev_type[0].type == dev->type)
+ return FALSE;
+
+ return TRUE;
+}
+
+/***********************************************************************
+ *
* Make device type atoms.
*
*/
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 6f1ebf768..bf97112b4 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -171,7 +171,8 @@ xf86ActivateDevice(LocalDevicePtr local)
local->dev = dev;
dev->coreEvents = local->flags & XI86_ALWAYS_CORE;
- dev->isMPDev = !(local->flags & XI86_SHARED_POINTER);
+ dev->isMPDev =
+ MayNeedPointer(dev) && !(local->flags & XI86_SHARED_POINTER);
InitSprite(dev, dev->isMPDev);
RegisterOtherDevice(dev);
diff --git a/include/extinit.h b/include/extinit.h
index 2087d74d6..5546b210f 100644
--- a/include/extinit.h
+++ b/include/extinit.h
@@ -131,6 +131,10 @@ AssignTypeAndName (
char * /* name */
);
+Bool MayNeedPointer(
+ DeviceIntPtr /* dev */
+ );
+
void
MakeDeviceTypeAtoms (
void