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