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 <[email protected]> --- Turned out the vesa test case was another occurence of this same issue, so I think that instaead of the previous two patches (revert + fix) it's better to just push this one instead. After all, there may be more lingering bugs here so we might as well squash all of them preventively. It's a bit more bigger than I'd like at this point in the release but given that this is how the API was intended it should have few repercussions. dix/events.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dix/events.c b/dix/events.c index 3c7d5d0..96e3f9c 100644 --- a/dix/events.c +++ b/dix/events.c @@ -343,7 +343,7 @@ IsMaster(DeviceIntPtr dev) Bool IsFloating(DeviceIntPtr dev) { - return GetMaster(dev, MASTER_KEYBOARD) == NULL; + return !IsMaster(dev) && GetMaster(dev, MASTER_KEYBOARD) == NULL; } -- 1.7.7.5 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
