[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: