xorg-server: Changes to 'upstream-1.11+input'
dix/events.c | 5 +++--
render/animcur.c | 3 +++
2 files changed, 6 insertions(+), 2 deletions(-)
New commits:
commit 7014cf0a6497f122bfa2b0e6e7794dc3e30c0c6f
Author: Chase Douglas <chase.douglas@canonical.com>
Date: Wed Jan 11 07:38:12 2012 -0800
Use event time instead of CurrentTime for grab times
When {XI,X,}AllowEvents is called, the timestamp is compared against the
grab time to ensure that the request pertains to the current grab in the
server. While many clients may use CurrentTime (client-side), the
timestamp of the event causing the grab is also valid.
This change ensures that the server's notion of the grab time is the
time of the event that activated the grab rather than the time that the
grab is actually activated.
This bug was exposed through nested touch then pointer grabs.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit f9e6858d5c10be6a8439c0f18bfb2325fa0ee070)
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
diff --git a/dix/events.c b/dix/events.c
index 0c4255c..04d7fb5 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -3723,7 +3723,8 @@ ActivatePassiveGrab(DeviceIntPtr device, GrabPtr grab, InternalEvent *event,
}
}
- (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
+ (*grabinfo->ActivateGrab)(device, grab,
+ ClientTimeToServerTime(event->any.time), TRUE);
if (xE)
{
commit 4989bff6bfe2c0409127a523e56f177b3141b8d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jan 6 13:20:45 2012 +1000
render: don't bother with animated cursors on floating slaves (#39989)
X.Org Bug 39989 <http://bugs.freedesktop.org/show_bug.cgi?id=39989>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit bbb6b8c834e0e1491ca14403b5d0840dd14380d3)
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
diff --git a/render/animcur.c b/render/animcur.c
index 31cbab9..8d4a9c2 100644
--- a/render/animcur.c
+++ b/render/animcur.c
@@ -208,6 +208,9 @@ AnimCurDisplayCursor (DeviceIntPtr pDev,
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
Bool ret;
+ if (IsFloating(pDev))
+ return FALSE;
+
Unwrap (as, pScreen, DisplayCursor);
if (IsAnimCur(pCursor))
{
commit b5f71a5f124eb44eab08f68d3c8ef946df05bb45
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Jan 9 15:04:10 2012 +1000
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>
(cherry picked from commit 35bd77e9d0701daae87d681900d749604fc6471f)
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
diff --git a/dix/events.c b/dix/events.c
index 5360267..0c4255c 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -1368,7 +1368,7 @@ ScreenRestructured (ScreenPtr pScreen)
for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
{
- if (!DevHasCursor(pDev))
+ if (!IsFloating(pDev) && !DevHasCursor(pDev))
continue;
/* GrabDevice doesn't have a confineTo field, so we don't need to
Reply to: