xserver: Branch 'master' - 4 commits
Jeremy Huddleston
jeremyhu at kemper.freedesktop.org
Sat Jul 25 20:19:17 PDT 2009
hw/xquartz/darwinEvents.c | 4 +---
hw/xquartz/quartzKeyboard.c | 5 ++++-
mi/mieq.c | 12 ++++++------
3 files changed, 11 insertions(+), 10 deletions(-)
New commits:
commit 7f28c555b80dda2ed4f518efdb79733647dfea80
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 20:19:05 2009 -0700
XQuartz: Use CopyKeyClass to copy the keymap to the virtual core keyboard.
(cherry picked from commit 9a801d1716f005c30be076fcc9ac8dbb3e74d989)
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index 8dfea27..ca0a527 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -68,6 +68,9 @@
#include "X11/keysym.h"
#include "keysym2ucs.h"
+extern void
+CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
+
enum {
MOD_COMMAND = 256,
MOD_SHIFT = 512,
@@ -349,6 +352,8 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
XkbSetRepeatKeys(pDev, -1, AutoRepeatModeOn);
}
+
+ CopyKeyClass(pDev, inputInfo.keyboard);
}
void DarwinKeyboardReloadHandler(int screenNum, xEventPtr xe, DeviceIntPtr pDev, int nevents) {
commit 1031ac3a7306e7a82169c79c64607696c826c47f
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 20:18:38 2009 -0700
Revert "XQuartz: Copy the keyboard map to the core keyboard"
This reverts commit 795de791cf18c658421d701af645718493eac51e.
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index 6d5bad9..8dfea27 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -349,8 +349,6 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
XkbSetRepeatKeys(pDev, -1, AutoRepeatModeOn);
}
-
- SetKeySymsMap(&inputInfo.keyboard->key->curKeySyms, &pDev->key->curKeySyms);
}
void DarwinKeyboardReloadHandler(int screenNum, xEventPtr xe, DeviceIntPtr pDev, int nevents) {
commit 48703083a1cf308306f254691d7c2ecda09b3812
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 19:34:17 2009 -0700
XQuartz: Use pDev=NULL for DarwinSendDDXEvent
These events aren't really related to physical input devices anyways, so it doesn't make sense to use the pointer.
(cherry picked from commit bfe0b9cfa7af4a48dba849cab1eb152c409b4e08)
diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index 1e285cd..42e12dc 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -571,7 +571,6 @@ void DarwinSendDDXEvent(int type, int argc, ...) {
INT32 *argv;
int i, max_args;
va_list args;
- DeviceIntPtr pDev;
memset(&xe, 0, sizeof(xe));
xe.u.u.type = type;
@@ -587,9 +586,8 @@ void DarwinSendDDXEvent(int type, int argc, ...) {
va_end (args);
}
- pDev = (!darwinPointer->isMaster && darwinPointer->u.master) ? darwinPointer->u.master : darwinPointer;
darwinEvents_lock(); {
- mieqEnqueue(pDev, &xe);
+ mieqEnqueue(NULL, &xe);
DarwinPokeEQ();
} darwinEvents_unlock();
}
commit b8e0f740829d0c81324aeb59222fc8e3d22493cc
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 20:17:25 2009 -0700
mieq: Protect from pDev=NULL in mieqEnqueue and mieqProcessInputEvents
(cherry picked from commit bf60ffb49700da367f7f88983b042a88fef7219b)
diff --git a/mi/mieq.c b/mi/mieq.c
index f28a16d..976fac9 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -217,7 +217,7 @@ mieqEnqueue(DeviceIntPtr pDev, InternalEvent *e)
e->any.time = miEventQueue.lastEventTime;
miEventQueue.lastEventTime = ((InternalEvent*)evt->event)->any.time;
- miEventQueue.events[oldtail].pScreen = EnqueueScreen(pDev);
+ miEventQueue.events[oldtail].pScreen = pDev ? EnqueueScreen(pDev) : NULL;
miEventQueue.events[oldtail].pDev = pDev;
miEventQueue.lastMotion = isMotion;
@@ -383,7 +383,7 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
/* Custom event handler */
handler = miEventQueue.handlers[event->any.type];
- if (screen && screen != DequeueScreen(dev) && !handler) {
+ if (dev && screen && screen != DequeueScreen(dev) && !handler) {
/* Assumption - screen switching can only occur on motion events. */
DequeueScreen(dev) = screen;
x = event->device.root_x;
@@ -400,12 +400,12 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
* steal it. */
if (handler)
{
- handler(DequeueScreen(dev)->myNum, event, dev);
+ int screenNum = dev && DequeueScreen(dev) ? DequeueScreen(dev)->myNum : (screen ? screen->myNum : 0);
+ handler(screenNum, event, dev);
/* Check for the SD's master in case the device got detached
* during event processing */
if (master && dev->u.master)
- handler(DequeueScreen(master)->myNum,
- (InternalEvent*)masterEvents->event, master);
+ handler(screenNum, (InternalEvent*)masterEvents->event, master);
} else
{
/* process slave first, then master */
@@ -459,7 +459,7 @@ mieqProcessInputEvents(void)
pthread_mutex_unlock(&miEventQueueMutex);
#endif
- master = (!IsMaster(dev) && dev->u.master) ? dev->u.master : NULL;
+ master = (dev && !IsMaster(dev) && dev->u.master) ? dev->u.master : NULL;
if (screenIsSaved == SCREEN_SAVER_ON)
dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
More information about the xorg-commit
mailing list