xserver: Branch 'xorg-server-1.4-apple' - 4 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Thu Sep 4 09:01:59 PDT 2008


 configure.ac                    |    2 -
 hw/xquartz/X11Application.m     |   30 ++++++++++++--------------
 mi/mieq.c                       |   45 ++++++++++++++++++++++++++++++++++++++--
 miext/rootless/rootlessWindow.c |    7 ------
 4 files changed, 58 insertions(+), 26 deletions(-)

New commits:
commit d7ce166ee85eea7882baba93f9f78f7435271681
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Sep 4 08:55:45 2008 -0700

    1.4.2-apple15

diff --git a/configure.ac b/configure.ac
index 225e39e..7b8fff6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.4.2-apple14, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.4.2-apple15, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE
commit d942849f248c368b92ca73e145e8a5bc339112d7
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Sep 4 08:55:22 2008 -0700

    XQuartz: Fixed proximity logic errors for tablets.

diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index 2a33699..f965e9f 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -906,7 +906,7 @@ extern int darwin_modifier_flags; // darwinEvents.c
                 tilt_y   = [e tilt].y; 
             }
             
-            if([e subtype] != NSTabletProximityEventSubtype) {
+            if([e subtype] == NSTabletProximityEventSubtype) {
                 switch([e pointingDeviceType]) {
                     case NSEraserPointingDevice:
                         darwinTabletCurrent=darwinTabletEraser;
@@ -931,21 +931,19 @@ extern int darwin_modifier_flags; // darwinEvents.c
             break;
 
 		case NSTabletProximity:
-                if([e subtype] != NSTabletProximityEventSubtype) {
-                    switch([e pointingDeviceType]) {
-                        case NSEraserPointingDevice:
-                            darwinTabletCurrent=darwinTabletEraser;
-                            break;
-                        case NSPenPointingDevice:
-                            darwinTabletCurrent=darwinTabletStylus;
-                            break;
-                        case NSCursorPointingDevice:
-                        case NSUnknownPointingDevice:
-                        default:
-                            darwinTabletCurrent=darwinTabletCursor;
-                            break;
-                    }
-                }
+            switch([e pointingDeviceType]) {
+                case NSEraserPointingDevice:
+                    darwinTabletCurrent=darwinTabletEraser;
+                    break;
+                case NSPenPointingDevice:
+                    darwinTabletCurrent=darwinTabletStylus;
+                    break;
+                case NSCursorPointingDevice:
+                case NSUnknownPointingDevice:
+                default:
+                    darwinTabletCurrent=darwinTabletCursor;
+                    break;
+            }
                     
 			DarwinSendProximityEvents([e isEnteringProximity]?ProximityIn:ProximityOut,
                                       pointer_x, pointer_y);
commit 4904e04ce6cc2d1ea4300711ef11655a48931bc5
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Sep 4 08:37:22 2008 -0700

    XQuartz: Added locking into mieq to protect X from eating itself

diff --git a/mi/mieq.c b/mi/mieq.c
index 002864d..3f50f27 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -36,6 +36,11 @@ in this Software without prior written authorization from The Open Group.
 #include <dix-config.h>
 #endif
 
+#ifdef XQUARTZ
+#include  <pthread.h>
+static pthread_mutex_t miEventQueueMutex = PTHREAD_MUTEX_INITIALIZER;
+#endif
+
 # define NEED_EVENTS
 # include   <X11/X.h>
 # include   <X11/Xmd.h>
@@ -105,6 +110,9 @@ mieqInit(void)
 void
 mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
 {
+#ifdef XQUARTZ
+    pthread_mutex_lock(&miEventQueueMutex);
+#endif
     unsigned int           oldtail = miEventQueue.tail, newtail;
     int                    isMotion = 0;
     deviceValuator         *v = (deviceValuator *) e;
@@ -123,6 +131,9 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
     if (e->u.u.type == DeviceValuator) {
         if (laste->nevents > 6) {
             ErrorF("mieqEnqueue: more than six valuator events; dropping.\n");
+#ifdef XQUARTZ
+            pthread_mutex_unlock(&miEventQueueMutex);
+#endif
             return;
         }
         if (oldtail == miEventQueue.head ||
@@ -134,9 +145,15 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
             ((lastkbp->deviceid & DEVICE_BITS) !=
              (v->deviceid & DEVICE_BITS))) {
             ErrorF("mieqEnequeue: out-of-order valuator event; dropping.\n");
+#ifdef XQUARTZ
+            pthread_mutex_unlock(&miEventQueueMutex);
+#endif
             return;
         }
         memcpy(&(laste->event[laste->nevents++]), e, sizeof(xEvent));
+#ifdef XQUARTZ
+        pthread_mutex_unlock(&miEventQueueMutex);
+#endif
         return;
     }
 
@@ -151,7 +168,10 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
          * handled. */
     	if (newtail == miEventQueue.head) {
             ErrorF("tossed event which came in late\n");
-	    return;
+#ifdef XQUARTZ
+            pthread_mutex_unlock(&miEventQueueMutex);
+#endif
+            return;
         }
 	miEventQueue.tail = newtail;
     }
@@ -172,24 +192,39 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
     miEventQueue.events[oldtail].pDev = pDev;
 
     miEventQueue.lastMotion = isMotion;
+#ifdef XQUARTZ
+    pthread_mutex_unlock(&miEventQueueMutex);
+#endif
 }
 
 void
 mieqSwitchScreen(ScreenPtr pScreen, Bool fromDIX)
 {
+#ifdef XQUARTZ
+    pthread_mutex_lock(&miEventQueueMutex);
+#endif
     miEventQueue.pEnqueueScreen = pScreen;
     if (fromDIX)
 	miEventQueue.pDequeueScreen = pScreen;
+#ifdef XQUARTZ
+    pthread_mutex_unlock(&miEventQueueMutex);
+#endif
 }
 
 void
 mieqSetHandler(int event, mieqHandler handler)
 {
+#ifdef XQUARTZ
+    pthread_mutex_lock(&miEventQueueMutex);
+#endif
     if (handler && miEventQueue.handlers[event])
         ErrorF("mieq: warning: overriding existing handler %p with %p for "
                "event %d\n", miEventQueue.handlers[event], handler, event);
 
     miEventQueue.handlers[event] = handler;
+#ifdef XQUARTZ
+    pthread_mutex_unlock(&miEventQueueMutex);
+#endif
 }
 
 /* Call this from ProcessInputEvents(). */
@@ -200,6 +235,10 @@ mieqProcessInputEvents(void)
     int x = 0, y = 0;
     DeviceIntPtr dev = NULL;
 
+#ifdef XQUARTZ
+    pthread_mutex_lock(&miEventQueueMutex);
+#endif
+
     while (miEventQueue.head != miEventQueue.tail) {
         if (screenIsSaved == SCREEN_SAVER_ON)
             SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
@@ -220,7 +259,6 @@ mieqProcessInputEvents(void)
             miEventQueue.handlers[e->event->u.u.type](miEventQueue.pDequeueScreen->myNum,
                                                       e->event, dev,
                                                       e->nevents);
-            return;
         }
         else if (e->pScreen != miEventQueue.pDequeueScreen) {
             /* Assumption - screen switching can only occur on motion events. */
@@ -250,4 +288,7 @@ mieqProcessInputEvents(void)
             dev->public.processInputProc(e->event, dev, e->nevents);
         }
     }
+#ifdef XQUARTZ
+    pthread_mutex_unlock(&miEventQueueMutex);
+#endif
 }
commit 4a653c6bfd270f2960a8c7e726e7628cfc3c9051
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Sep 4 08:07:32 2008 -0700

    XQuartz: Remove decls of crashtracer strings that we don't use anymore in here

diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c
index 05dae80..080de47 100644
--- a/miext/rootless/rootlessWindow.c
+++ b/miext/rootless/rootlessWindow.c
@@ -131,13 +131,6 @@ RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state)
   pWin->rootlessUnhittable = winRec->is_offscreen;
 }
 
-#ifdef XQUARTZ
-#include <string.h>
-extern char *__crashreporter_info__;
-extern const char *__crashreporter_info__base;
-extern int __crashreporter_info__len;
-#endif
-
 void RootlessNativeWindowMoved (WindowPtr pWin) {
     xp_box bounds;
     int sx, sy, err;


More information about the xorg-commit mailing list