summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2012-02-20 12:09:33 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2012-04-26 13:29:55 +1000
commitd75da4eccbabc3f83937cbd4eb2d6be2fd27a4b9 (patch)
treeca241a9edb5ef07501df7e1bbe9b23463822c372
parent38e73f7fc29fe8e9defa8a0516a50ac3a84e10c2 (diff)
dix: IsFloating() on master devices is always false
There are a few subtle bugs during startup where IsFloating() returns true if the device is a master device that is not yet paired with its keyboard device. Force IsFloating() to always return FALSE for master devices, that was the intent after all and any code that relies on the other behaviour should be fixed instead. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk> (cherry picked from commit 5497ce3da442d27c2dc7796bfef6ccd670bbadc4)
-rw-r--r--dix/events.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c
index 0e4ba8691..f7b9456ea 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -341,7 +341,7 @@ IsMaster(DeviceIntPtr dev)
Bool
IsFloating(DeviceIntPtr dev)
{
- return GetMaster(dev, MASTER_KEYBOARD) == NULL;
+ return !IsMaster(dev) && GetMaster(dev, MASTER_KEYBOARD) == NULL;
}
/**