From 763848d3ab84b4e33a0254120c44b5a1877c819d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 2 Feb 2009 17:20:17 +1000 Subject: [PATCH] Input: change processing API to InternalEvents. Don't pass xEvent* and count through to processing, pass a single InternalEvent. Custom handlers are disabled for the time being. And for extra fun, XKB's pointer motion emulation is disabled. But stick an error in there so that we get reminded should we forget about it. Signed-off-by: Peter Hutterer --- Xi/exevents.c | 2 +- dix/events.c | 4 ++-- include/dix.h | 5 ++--- include/exevents.h | 5 ++--- include/input.h | 16 +++++++--------- mi/mieq.c | 8 ++++++-- xkb/ddxDevBtn.c | 4 ++++ xkb/xkbAccessX.c | 9 ++++----- xkb/xkbActions.c | 6 +++--- xkb/xkbPrKeyEv.c | 6 +++--- 10 files changed, 34 insertions(+), 31 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 1ce3688a8..1915e3fa5 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -876,7 +876,7 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event) * */ void -ProcessOtherEvent(xEventPtr ev, DeviceIntPtr device, int count) +ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device) { GrabPtr grab = device->deviceGrab.grab; Bool deactivateDeviceGrab = FALSE; diff --git a/dix/events.c b/dix/events.c index 5579ef276..881e4c529 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1028,7 +1028,7 @@ NoticeEventTime(InternalEvent *ev) * linked list for later delivery. */ void -EnqueueEvent(xEvent *ev, DeviceIntPtr device, int count) +EnqueueEvent(InternalEvent *ev, DeviceIntPtr device) { QdEventPtr tail = *syncEvents.pendtail; QdEventPtr qe; @@ -1163,7 +1163,7 @@ PlayReleasedEvents(void) } #endif - (*qe->device->public.processInputProc)(qe->event, qe->device, 1); + (*qe->device->public.processInputProc)(qe->event, qe->device); xfree(qe); for (dev = inputInfo.devices; dev && dev->deviceGrab.sync.frozen; dev = dev->next) ; diff --git a/include/dix.h b/include/dix.h index d48d83af3..552a2d008 100644 --- a/include/dix.h +++ b/include/dix.h @@ -328,9 +328,8 @@ extern _X_EXPORT WindowPtr GetSpriteWindow(DeviceIntPtr pDev); extern _X_EXPORT void NoticeEventTime(InternalEvent *ev); extern _X_EXPORT void EnqueueEvent( - xEventPtr /* xE */, - DeviceIntPtr /* device */, - int /* count */); + InternalEvent * /* ev */, + DeviceIntPtr /* device */); extern _X_EXPORT void ActivatePointerGrab( DeviceIntPtr /* mouse */, diff --git a/include/exevents.h b/include/exevents.h index 51af9b4a3..d09ad3c5b 100644 --- a/include/exevents.h +++ b/include/exevents.h @@ -51,9 +51,8 @@ UpdateDeviceState ( DeviceEvent* /* xE */); extern _X_EXPORT void ProcessOtherEvent ( - xEventPtr /* FIXME deviceKeyButtonPointer * xE */, - DeviceIntPtr /* other */, - int /* count */); + InternalEvent* /* ev */, + DeviceIntPtr /* other */); extern _X_EXPORT int InitProximityClassDeviceStruct( DeviceIntPtr /* dev */); diff --git a/include/input.h b/include/input.h index faa8d520e..76519198e 100644 --- a/include/input.h +++ b/include/input.h @@ -96,6 +96,7 @@ SOFTWARE. #define RevertToFollowKeyboard 3 #endif +#include "events.h" typedef unsigned long Leds; typedef struct _OtherClients *OtherClientsPtr; @@ -122,9 +123,8 @@ typedef int (*DeviceProc)( int /*what*/); typedef void (*ProcessInputProc)( - xEventPtr /*events*/, - DeviceIntPtr /*device*/, - int /*count*/); + InternalEvent * /*event*/, + DeviceIntPtr /*device*/); typedef Bool (*DeviceHandleProc)( DeviceIntPtr /*device*/, @@ -379,14 +379,12 @@ extern _X_EXPORT void MaybeStopHint( ClientPtr /*client*/); extern _X_EXPORT void ProcessPointerEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*mouse*/, - int /*count*/); + InternalEvent* /* ev */, + DeviceIntPtr /*mouse*/); extern _X_EXPORT void ProcessKeyboardEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*keybd*/, - int /*count*/); + InternalEvent* /*ev*/, + DeviceIntPtr /*keybd*/); extern _X_EXPORT Bool LegalModifier( unsigned int /*key*/, diff --git a/mi/mieq.c b/mi/mieq.c index a3e58a3a6..cca565abf 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -391,6 +391,7 @@ mieqProcessInputEvents(void) /* If someone's registered a custom event handler, let them * steal it. */ +#if 0 if (handler) { /* FIXME: this is broken now, InternalEvents! */ @@ -399,12 +400,15 @@ mieqProcessInputEvents(void) handler(DequeueScreen(master)->myNum, masterEvents->event, master, 1); } else +#endif { /* process slave first, then master */ - dev->public.processInputProc(event, dev, 1); + dev->public.processInputProc(event, dev); if (master) - master->public.processInputProc(masterEvents->event, master, 1); + master->public.processInputProc( + (InternalEvent*)masterEvents->event, + master); } } diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c index aad9661bc..e735fdec8 100644 --- a/xkb/ddxDevBtn.c +++ b/xkb/ddxDevBtn.c @@ -58,6 +58,9 @@ DeviceIntPtr master = NULL; if (dev == inputInfo.pointer || !dev->public.on) return; + ErrorF("[xkb] XkbDDXFakeDeviceButton. If you read this message in your " + "log file, Please file a bug on bugs.freedesktop.org.\n"); +#if 0 nAxes = (dev->valuator?dev->valuator->numAxes:0); if (nAxes > 6) nAxes = 6; @@ -125,4 +128,5 @@ DeviceIntPtr master = NULL; (*master->public.processInputProc)(masterEvents->event, master, count); } return; +#endif } diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index 618a18c72..524bb5392 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -684,16 +684,15 @@ Bool ignoreKeyEvent = FALSE; extern int xkbDevicePrivateIndex; extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer); void -ProcessPointerEvent( register xEvent * xE, - register DeviceIntPtr mouse, - int count) +ProcessPointerEvent( InternalEvent *ev, + DeviceIntPtr mouse) { DeviceIntPtr dev = GetPairedDevice(mouse); XkbSrvInfoPtr xkbi = dev->key->xkbInfo; unsigned changed = 0; ProcessInputProc backupproc; xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse); -DeviceEvent *event = (DeviceEvent*)xE; +DeviceEvent *event = (DeviceEvent*)ev; xkbi->shiftKeyCount = 0; xkbi->lastPtrEventTime= event->time; @@ -723,7 +722,7 @@ DeviceEvent *event = (DeviceEvent*)xE; */ UNWRAP_PROCESS_INPUT_PROC(mouse, xkbPrivPtr, backupproc); - mouse->public.processInputProc(xE, mouse, count); + mouse->public.processInputProc(ev, mouse); COND_WRAP_PROCESS_INPUT_PROC(mouse, xkbPrivPtr, backupproc, xkbUnwrapProc); diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 3a2c51740..7d17ad4f7 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -853,7 +853,7 @@ ProcessInputProc backupproc; } UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc); - xkbi->device->public.processInputProc(&ev,xkbi->device,1); + xkbi->device->public.processInputProc((InternalEvent*)&ev, xkbi->device); COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr, backupproc,xkbUnwrapProc); @@ -884,7 +884,7 @@ ProcessInputProc backupproc; } UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc); - xkbi->device->public.processInputProc(&ev,xkbi->device,1); + xkbi->device->public.processInputProc((InternalEvent*)&ev, xkbi->device); COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr, backupproc,xkbUnwrapProc); @@ -1212,7 +1212,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); tmpdev = GetPairedDevice(dev); UNWRAP_PROCESS_INPUT_PROC(tmpdev,xkbPrivPtr, backupproc); - dev->public.processInputProc((xEvent*)event, tmpdev, 1); + dev->public.processInputProc((InternalEvent*)event, tmpdev); COND_WRAP_PROCESS_INPUT_PROC(tmpdev, xkbPrivPtr, backupproc,xkbUnwrapProc); } diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c index 86e967477..effb0ea3a 100644 --- a/xkb/xkbPrKeyEv.c +++ b/xkb/xkbPrKeyEv.c @@ -161,14 +161,14 @@ unsigned ndx; } void -ProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count) +ProcessKeyboardEvent(InternalEvent *ev, DeviceIntPtr keybd) { KeyClassPtr keyc = keybd->key; XkbSrvInfoPtr xkbi = NULL; ProcessInputProc backup_proc; xkbDeviceInfoPtr xkb_priv = XKBDEVICEINFO(keybd); - DeviceEvent *event = (DeviceEvent*)xE; + DeviceEvent *event = (DeviceEvent*)ev; int is_press = (event->type == ET_KeyPress); int is_release = (event->type == ET_KeyRelease); @@ -178,7 +178,7 @@ ProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count) /* We're only interested in key events. */ if (!is_press && !is_release) { UNWRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc); - keybd->public.processInputProc(xE, keybd, count); + keybd->public.processInputProc(ev, keybd); COND_WRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc, xkbUnwrapProc); return;