diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2006-12-20 14:43:38 +1030 |
---|---|---|
committer | Peter Hutterer <whot@hyena.localdomain> | 2006-12-20 14:43:38 +1030 |
commit | b55e1239ac3b2962a33d8af1f911cc0f01f40f23 (patch) | |
tree | 370f8563ad4b376cbe3eec1cb0351ab3df794325 | |
parent | 202b46eb6bf0d5f94973c2bf1e4ebe9d154eadbf (diff) |
xfree86: fix xf86ActivateDevice(): only set to MP device if not a keyboard
-rw-r--r-- | Changelog | 9 | ||||
-rw-r--r-- | Xi/extinit.c | 15 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Xinput.c | 3 | ||||
-rw-r--r-- | include/extinit.h | 4 |
4 files changed, 30 insertions, 1 deletions
@@ -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 |