xserver: Branch 'xorg-server-1.4-apple' - 3 commits
Ben Byer
bbyer at kemper.freedesktop.org
Mon Mar 31 20:22:01 PDT 2008
hw/xquartz/darwin.c | 2 +-
hw/xquartz/darwin.h | 2 +-
hw/xquartz/darwinEvents.c | 33 ---------------------------------
hw/xquartz/quartz.c | 5 ++++-
hw/xquartz/quartzCocoa.m | 3 ++-
hw/xquartz/quartzPasteboard.c | 10 ++++++----
hw/xquartz/quartzPasteboard.h | 4 ++--
hw/xquartz/xpr/xprScreen.c | 9 +++++++--
8 files changed, 23 insertions(+), 45 deletions(-)
New commits:
commit 36b8cb53534cc47af3863290dce7e709973f2234
Author: bushing <bushing at gmail.com>
Date: Mon Mar 31 20:21:24 2008 -0700
fix compilation on systems that don't have
XP_EVENT_SPACE_CHANGED defined
diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c
index 5e14473..4aa654a 100644
--- a/hw/xquartz/xpr/xprScreen.c
+++ b/hw/xquartz/xpr/xprScreen.c
@@ -107,6 +107,7 @@ static void eventHandler(unsigned int type, const void *arg,
DRISurfaceNotify(*(xp_surface_id *) arg, kind);
}
break;
+#ifdef XP_EVENT_SPACE_CHANGED
case XP_EVENT_SPACE_CHANGED:
ErrorF("XP_EVENT_SPACE_CHANGED\n");
if(arg_size == sizeof(uint32_t)) {
@@ -114,6 +115,7 @@ static void eventHandler(unsigned int type, const void *arg,
QuartzMessageServerThread(kXquartzSpaceChanged, 1, space_id);
}
break;
+#endif
default:
ErrorF("Unknown XP_EVENT type (%d) in xprScreen:eventHandler\n", type);
}
@@ -241,9 +243,11 @@ xprDisplayInit(void)
xp_select_events(XP_EVENT_DISPLAY_CHANGED
| XP_EVENT_WINDOW_STATE_CHANGED
| XP_EVENT_WINDOW_MOVED
+#ifdef XP_EVENT_SPACE_CHANGED
+ | XP_EVENT_SPACE_CHANGED
+#endif
| XP_EVENT_SURFACE_CHANGED
- | XP_EVENT_SURFACE_DESTROYED
- | XP_EVENT_SPACE_CHANGED,
+ | XP_EVENT_SURFACE_DESTROYED,
eventHandler, NULL);
AppleDRIExtensionInit();
commit f71c9dccac294a223506fd801e761884807aa360
Author: bushing <bushing at gmail.com>
Date: Mon Mar 31 20:18:58 2008 -0700
just a bit of juggling headers around -- we're preparing
to call our Xquartz-specific event handlers directly
as mieqHandlers
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index ec1d5e0..e397795 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -887,7 +887,7 @@ void AbortDDX( void )
*/
void
-xf86SetRootClip (ScreenPtr pScreen, BOOL enable)
+xf86SetRootClip (ScreenPtr pScreen, int enable)
{
WindowPtr pWin = WindowTable[pScreen->myNum];
WindowPtr pChild;
diff --git a/hw/xquartz/darwin.h b/hw/xquartz/darwin.h
index 5b3bc75..a71941d 100644
--- a/hw/xquartz/darwin.h
+++ b/hw/xquartz/darwin.h
@@ -54,7 +54,7 @@ typedef struct {
void DarwinPrintBanner(void);
int DarwinParseModifierList(const char *constmodifiers);
void DarwinAdjustScreenOrigins(ScreenInfo *pScreenInfo);
-void xf86SetRootClip (ScreenPtr pScreen, BOOL enable);
+void xf86SetRootClip (ScreenPtr pScreen, int enable);
#define SCREEN_PRIV(pScreen) \
((DarwinFramebufferPtr)pScreen->devPrivates[darwinScreenIndex].ptr)
diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c
index afb3776..f0093bd 100644
--- a/hw/xquartz/quartz.c
+++ b/hw/xquartz/quartz.c
@@ -33,6 +33,7 @@
#endif
#include "quartzCommon.h"
+#include "inputstr.h"
#include "quartz.h"
#include "darwin.h"
#include "darwinEvents.h"
@@ -497,6 +498,7 @@ void QuartzProcessEvent(xEvent *xe) {
GiveUp(0);
break;
+#if 0
case kXquartzReadPasteboard:
QuartzReadPasteboard();
break;
@@ -504,6 +506,7 @@ void QuartzProcessEvent(xEvent *xe) {
case kXquartzWritePasteboard:
QuartzWritePasteboard();
break;
+#endif
case kXquartzBringAllToFront:
DEBUG_LOG("kXquartzBringAllToFront\n");
diff --git a/hw/xquartz/quartzCocoa.m b/hw/xquartz/quartzCocoa.m
index 53e3f08..d8f9c69 100644
--- a/hw/xquartz/quartzCocoa.m
+++ b/hw/xquartz/quartzCocoa.m
@@ -37,13 +37,14 @@
#endif
#include "quartzCommon.h"
+#include "inputstr.h"
#include "quartzPasteboard.h"
#define BOOL xBOOL
#include "darwin.h"
-#undef BOOL
#include <Cocoa/Cocoa.h>
+#undef BOOL
#include "pseudoramiX.h"
diff --git a/hw/xquartz/quartzPasteboard.c b/hw/xquartz/quartzPasteboard.c
index 0cecff5..3833572 100644
--- a/hw/xquartz/quartzPasteboard.c
+++ b/hw/xquartz/quartzPasteboard.c
@@ -34,6 +34,8 @@
#include <dix-config.h>
#endif
+#include "misc.h"
+#include "inputstr.h"
#include "quartzPasteboard.h"
#include <X11/Xatom.h>
@@ -81,8 +83,8 @@ static char * QuartzReadCutBuffer(void)
}
// Write X cut buffer to Mac OS X pasteboard
-// Called by ProcessInputEvents() in response to request from X server thread.
-void QuartzWritePasteboard(void)
+// Called by mieqProcessInputEvents() in response to request from X server thread.
+void QuartzWritePasteboard(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents)
{
char *text;
text = QuartzReadCutBuffer();
@@ -95,8 +97,8 @@ void QuartzWritePasteboard(void)
#define strequal(a, b) (0 == strcmp((a), (b)))
// Read Mac OS X pasteboard into X cut buffer
-// Called by ProcessInputEvents() in response to request from X server thread.
-void QuartzReadPasteboard(void)
+// Called by mieqProcessInputEvents() in response to request from X server thread.
+void QuartzReadPasteboard(int screenNum, xEventPtr xe, DeviceIntPtr dev, int nevents)
{
char *oldText = QuartzReadCutBuffer();
char *text = QuartzReadCocoaPasteboard();
diff --git a/hw/xquartz/quartzPasteboard.h b/hw/xquartz/quartzPasteboard.h
index d6a8ee8..b51cd88 100644
--- a/hw/xquartz/quartzPasteboard.h
+++ b/hw/xquartz/quartzPasteboard.h
@@ -34,11 +34,11 @@
#define _QUARTZPASTEBOARD_H
// Aqua->X
-void QuartzReadPasteboard(void);
+void QuartzReadPasteboard(int, xEventPtr, DeviceIntPtr, int);
char * QuartzReadCocoaPasteboard(void); // caller must free string
// X->Aqua
-void QuartzWritePasteboard(void);
+void QuartzWritePasteboard(int, xEventPtr, DeviceIntPtr, int);
void QuartzWriteCocoaPasteboard(char *text);
#endif /* _QUARTZPASTEBOARD_H */
diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c
index b653a6e..5e14473 100644
--- a/hw/xquartz/xpr/xprScreen.c
+++ b/hw/xquartz/xpr/xprScreen.c
@@ -32,6 +32,7 @@
#endif
#include "quartzCommon.h"
+#include "inputstr.h"
#include "quartz.h"
#include "xpr.h"
#include "pseudoramiX.h"
commit da2306a76c4545a6c1996fe1d18cf2c3a7255e58
Author: bushing <bushing at gmail.com>
Date: Mon Mar 31 19:47:28 2008 -0700
nuke DarwinEventQueue
diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index 5b037d2..230050f 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -56,28 +56,10 @@ in this Software without prior written authorization from The Open Group.
#define SCROLLWHEELUPFAKE 4
#define SCROLLWHEELDOWNFAKE 5
-#define QUEUE_SIZE 256
-
-typedef struct _Event {
- xEvent event;
- ScreenPtr pScreen;
-} EventRec, *EventPtr;
-
int input_check_zero, input_check_flag;
static int old_flags = 0; // last known modifier state
-typedef struct _EventQueue {
- HWEventQueueType head, tail; /* long for SetInputCheck */
- CARD32 lastEventTime; /* to avoid time running backwards */
- Bool lastMotion;
- EventRec events[QUEUE_SIZE]; /* static allocation for signals */
- DevicePtr pKbd, pPtr; /* device pointer, to get funcs */
- ScreenPtr pEnqueueScreen; /* screen events are being delivered to */
- ScreenPtr pDequeueScreen; /* screen events are being dispatched to */
-} EventQueueRec, *EventQueuePtr;
-
-static EventQueueRec darwinEventQueue;
xEvent *darwinEvents = NULL;
/*
@@ -231,21 +213,6 @@ Bool DarwinEQInit(DevicePtr pKbd, DevicePtr pPtr) {
return TRUE;
}
-
-/*
- * DarwinEQEnqueue
- * Must be thread safe with ProcessInputEvents.
- * DarwinEQEnqueue - called from event gathering thread
- * ProcessInputEvents - called from X server thread
- * DarwinEQEnqueue should never be called from more than one thread.
- *
- * This should be deprecated in favor of miEQEnqueue -- BB
- */
-void DarwinEQEnqueue(const xEventPtr e) {
- mieqEnqueue(NULL, e);
- DarwinPokeEQ();
-}
-
/*
* ProcessInputEvents
* Read and process events from the event queue until it is empty.
diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c
index 1f1b9a4..afb3776 100644
--- a/hw/xquartz/quartz.c
+++ b/hw/xquartz/quartz.c
@@ -409,7 +409,7 @@ QuartzMessageServerThread(
va_end (args);
}
- DarwinEQEnqueue(&xe);
+ mieqEnqueue(NULL, &xe);
}
More information about the xorg-commit
mailing list