dix: Update pointer limits for floating devices too (#43635)

When the screen is restructured, the pointer limits need to be reset for
floating slave devices as well, not just for master pointers. Only skip
devices that don't have a cursor (attached slaves and keyboard)

Bug reproducer: float an absolute slave device, rotate the screen - the
device is now confined to a section of the screen only.

X.Org Bug 43635 <http://bugs.freedesktop.org/show_bug.cgi?id=43635>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
Peter Hutterer 2012-01-09 15:04:10 +10:00
parent 5de0c2582f
commit 35bd77e9d0

View File

@ -1368,7 +1368,7 @@ ScreenRestructured (ScreenPtr pScreen)
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
{ {
if (!DevHasCursor(pDev)) if (!IsFloating(pDev) && !DevHasCursor(pDev))
continue; continue;
/* GrabDevice doesn't have a confineTo field, so we don't need to /* GrabDevice doesn't have a confineTo field, so we don't need to