xserver: Branch 'master' - 6 commits

Keith Packard keithp at kemper.freedesktop.org
Thu Jan 12 17:26:53 PST 2012


 dix/events.c                 |    5 +++--
 hw/xfree86/man/xorg.conf.man |    8 ++++----
 include/misc.h               |    3 ++-
 os/backtrace.c               |    8 ++++++--
 render/animcur.c             |    3 +++
 5 files changed, 18 insertions(+), 9 deletions(-)

New commits:
commit f9e6858d5c10be6a8439c0f18bfb2325fa0ee070
Author: Chase Douglas <chase.douglas at 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 at canonical.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

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 a6273cc85c01fc020643a68e49ca4e7a2d2ae898
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Jan 12 10:17:34 2012 +1000

    xfree86: mention udev in the xorg.conf manpage AutoAddDevices section
    
    And point out what "hotplugging" means.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Julien Cristau <jcristau at debian.org>

diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
index 5790185..c1b3c4f 100644
--- a/hw/xfree86/man/xorg.conf.man
+++ b/hw/xfree86/man/xorg.conf.man
@@ -659,8 +659,8 @@ Allow modules built for a different, potentially incompatible version of
 the X server to load. Disabled by default.
 .TP 7
 .BI "Option \*qAutoAddDevices\*q \*q" boolean \*q
-If this option is disabled, then no devices will be added from HAL events.
-Enabled by default.
+If this option is disabled, then no devices will be added from the HAL or
+udev backends. Enabled by default.
 .TP 7
 .BI "Option \*qAutoEnableDevices\*q \*q" boolean \*q
 If this option is disabled, then the devices will be added (and the
@@ -802,8 +802,8 @@ Recent X servers employ HAL or udev backends for input device enumeration
 and input hotplugging. It is usually not
 necessary to provide
 .B InputDevice
-sections in the xorg.conf if hotplugging is in use. If hotplugging is
-enabled,
+sections in the xorg.conf if hotplugging is in use (i.e. AutoAddDevices is
+enabled). If hotplugging is enabled,
 .B InputDevice
 sections using the
 .B mouse, kbd
commit a60d87ffe6d9a15fa830c8da2947c72487863c2b
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Jan 11 09:04:02 2012 +1000

    os: prettify backtrace output
    
    Changes to output:
    * "Backtrace:" now appears on a separate line _with_ a timestamp
    * A blank line is inserted after the last backtrace line
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Julien Cristau <jcristau at debian.org>

diff --git a/os/backtrace.c b/os/backtrace.c
index 298bf18..edaeb17 100644
--- a/os/backtrace.c
+++ b/os/backtrace.c
@@ -43,7 +43,8 @@ void xorg_backtrace(void)
     const char *mod;
     int size, i;
     Dl_info info;
-    ErrorF("\nBacktrace:\n");
+    ErrorF("\n");
+    ErrorF("Backtrace:\n");
     size = backtrace(array, 64);
     for (i = 0; i < size; i++) {
 	int rc = dladdr(array[i], &info);
@@ -59,6 +60,7 @@ void xorg_backtrace(void)
 	    ErrorF("%d: %s (%p+0x%lx) [%p]\n", i, mod,
 		   info.dli_fbase, (long unsigned int)((char *) array[i] - (char *) info.dli_fbase), array[i]);
     }
+    ErrorF("\n");
 }
 
 #else /* not glibc or glibc < 2.1 */
@@ -188,7 +190,8 @@ static int xorg_backtrace_pstack(void) {
 
 void xorg_backtrace(void) {
 
-    ErrorF("\nBacktrace:\n");
+    ErrorF("\n");
+    ErrorF("Backtrace:\n");
 
 #  ifdef HAVE_PSTACK
 /* First try fork/exec of pstack - otherwise fall back to walkcontext
@@ -207,6 +210,7 @@ void xorg_backtrace(void) {
 #  endif
 	    ErrorF("Failed to get backtrace info: %s\n", strerror(errno));
     }
+    ErrorF("\n");
 }
 
 # else
commit c495a839ace7fcc1f1fe414d3d3ba04f08885434
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Jan 11 09:01:05 2012 +1000

    include: prettify BUG_WARN output
    
    ErrorF output is prefixed with a timestamp, so the previous output would
    look like this:
    
    [ 50.423] BUG: triggered 'if (dev->valuator->numAxes < 2)'
    BUG: getevents.c:842 in scale_to_desktop()
    
    Change this to have the prefix on both lines:
    [ 50.423] BUG: triggered 'if (dev->valuator->numAxes < 2)'
    [ 50.423] BUG: getevents.c:842 in scale_to_desktop()
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Julien Cristau <jcristau at debian.org>

diff --git a/include/misc.h b/include/misc.h
index 3d08511..3f57f4b 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -364,7 +364,8 @@ extern _X_EXPORT unsigned long serverGeneration;
 /* Don't use this directly, use BUG_WARN or BUG_WARN_MSG instead */
 #define __BUG_WARN_MSG(cond, with_msg, ...)                                \
           do { if (cond) {                                                \
-              ErrorF("BUG: triggered 'if (" #cond ")'\nBUG: %s:%d in %s()\n",     \
+              ErrorF("BUG: triggered 'if (" #cond ")'\n");                \
+              ErrorF("BUG: %s:%d in %s()\n",                              \
                       __FILE__, __LINE__, __func__);                      \
               if (with_msg) ErrorF(__VA_ARGS__);                          \
               xorg_backtrace();                                           \
commit bbb6b8c834e0e1491ca14403b5d0840dd14380d3
Author: Peter Hutterer <peter.hutterer at 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 at who-t.net>
    Reviewed-by: Jeremy Huddleston <jeremyhu at apple.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 35bd77e9d0701daae87d681900d749604fc6471f
Author: Peter Hutterer <peter.hutterer at 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 at who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas at 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


More information about the xorg-commit mailing list