xserver: Branch 'xorg-server-1.6-apple' - 4 commits
Jeremy Huddleston
jeremyhu at kemper.freedesktop.org
Sat Jul 25 20:07:27 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 9a801d1716f005c30be076fcc9ac8dbb3e74d989
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 20:06:29 2009 -0700
XQuartz: Use CopyKeyClass to copy the keymap to the virtual core keyboard.
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index a212eb5..261b5a5 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,
@@ -360,6 +363,7 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
XkbSetRepeatKeys(pDev, -1, AutoRepeatModeOn);
}
+ CopyKeyClass(pDev, inputInfo.keyboard);
}
void DarwinKeyboardReloadHandler(int screenNum, xEventPtr xe, DeviceIntPtr pDev, int nevents) {
commit bcfa6cb2ee2f004daae03b19d3873d209082bb42
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 19:43:29 2009 -0700
Revert "XQuartz: Copy the keyboard map to the core keyboard"
This reverts commit 427e1aab41dabb54354bfd30f2baae98ac8202c0.
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index 0e662a4..a212eb5 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -360,7 +360,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 bfe0b9cfa7af4a48dba849cab1eb152c409b4e08
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.
diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index c6fe566..ecd0ed7 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -572,7 +572,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;
@@ -588,9 +587,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 bf60ffb49700da367f7f88983b042a88fef7219b
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Jul 25 19:33:06 2009 -0700
mieq: Protect from pDev=NULL in mieqEnqueue and mieqProcessInputEvents
diff --git a/mi/mieq.c b/mi/mieq.c
index 213ad5b..e3850d0 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -263,7 +263,7 @@ mieqEnqueue(DeviceIntPtr pDev, xEvent *e)
evt->event->u.keyButtonPointer.time = miEventQueue.lastEventTime;
miEventQueue.lastEventTime = evt->event->u.keyButtonPointer.time;
- miEventQueue.events[oldtail].pScreen = EnqueueScreen(pDev);
+ miEventQueue.events[oldtail].pScreen = pDev ? EnqueueScreen(pDev) : NULL;
miEventQueue.events[oldtail].pDev = pDev;
miEventQueue.lastMotion = isMotion;
@@ -423,7 +423,7 @@ mieqProcessInputEvents(void)
#endif
type = event->u.u.type;
- master = (!dev->isMaster && dev->u.master) ? dev->u.master : NULL;
+ master = (dev && !dev->isMaster && dev->u.master) ? dev->u.master : NULL;
if (screenIsSaved == SCREEN_SAVER_ON)
dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
@@ -438,7 +438,7 @@ mieqProcessInputEvents(void)
/* Custom event handler */
handler = miEventQueue.handlers[type];
- if (screen != DequeueScreen(dev) && !handler) {
+ if (dev && DequeueScreen(dev) && screen != DequeueScreen(dev) && !handler) {
/* Assumption - screen switching can only occur on motion events. */
DequeueScreen(dev) = screen;
x = event->u.keyButtonPointer.rootX;
@@ -464,10 +464,10 @@ mieqProcessInputEvents(void)
* steal it. */
if (handler)
{
- handler(DequeueScreen(dev)->myNum, event, dev, nevents);
+ int screenNum = dev && DequeueScreen(dev) ? DequeueScreen(dev)->myNum : (screen ? screen->myNum : 0);
+ handler(screenNum, event, dev, nevents);
if (master)
- handler(DequeueScreen(master)->myNum,
- masterEvents->event, master, nevents);
+ handler(screenNum, masterEvents->event, master, nevents);
} else
{
/* process slave first, then master */
More information about the xorg-commit
mailing list