mieqProcessInputEvents: Check custom event handlers first.
This commit is contained in:
parent
700e8bf33f
commit
9e70a3cf58
29
mi/mieq.c
29
mi/mieq.c
|
@ -315,10 +315,21 @@ mieqProcessInputEvents(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
e = &miEventQueue.events[miEventQueue.head];
|
e = &miEventQueue.events[miEventQueue.head];
|
||||||
/* Assumption - screen switching can only occur on motion events. */
|
|
||||||
miEventQueue.head = (miEventQueue.head + 1) % QUEUE_SIZE;
|
miEventQueue.head = (miEventQueue.head + 1) % QUEUE_SIZE;
|
||||||
|
|
||||||
if (e->pScreen != DequeueScreen(e->pDev)) {
|
if ((handler = miEventQueue.handlers[e->events->event->u.u.type]))
|
||||||
|
{
|
||||||
|
/* If someone's registered a custom event handler, let them
|
||||||
|
* steal it. */
|
||||||
|
handler(DequeueScreen(e->pDev)->myNum, e->events->event,
|
||||||
|
e->pDev, e->nevents);
|
||||||
|
if (!e->pDev->isMaster && e->pDev->u.master)
|
||||||
|
{
|
||||||
|
handler(DequeueScreen(e->pDev->u.master)->myNum,
|
||||||
|
e->events->event, e->pDev->u.master, e->nevents);
|
||||||
|
}
|
||||||
|
} else if (e->pScreen != DequeueScreen(e->pDev)) {
|
||||||
|
/* Assumption - screen switching can only occur on motion events. */
|
||||||
DequeueScreen(e->pDev) = e->pScreen;
|
DequeueScreen(e->pDev) = e->pScreen;
|
||||||
x = e->events[0].event->u.keyButtonPointer.rootX;
|
x = e->events[0].event->u.keyButtonPointer.rootX;
|
||||||
y = e->events[0].event->u.keyButtonPointer.rootY;
|
y = e->events[0].event->u.keyButtonPointer.rootY;
|
||||||
|
@ -353,19 +364,6 @@ mieqProcessInputEvents(void)
|
||||||
} else
|
} else
|
||||||
master_event = NULL;
|
master_event = NULL;
|
||||||
|
|
||||||
/* If someone's registered a custom event handler, let them
|
|
||||||
* steal it. */
|
|
||||||
if ((handler = miEventQueue.handlers[e->events->event->u.u.type]))
|
|
||||||
{
|
|
||||||
handler(DequeueScreen(e->pDev)->myNum, e->events->event,
|
|
||||||
e->pDev, e->nevents);
|
|
||||||
if (!e->pDev->isMaster && e->pDev->u.master)
|
|
||||||
{
|
|
||||||
handler(DequeueScreen(e->pDev->u.master)->myNum,
|
|
||||||
e->events->event, e->pDev->u.master, e->nevents);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
/* process slave first, then master */
|
/* process slave first, then master */
|
||||||
e->pDev->public.processInputProc(event, e->pDev, e->nevents);
|
e->pDev->public.processInputProc(event, e->pDev, e->nevents);
|
||||||
|
|
||||||
|
@ -374,7 +372,6 @@ mieqProcessInputEvents(void)
|
||||||
e->pDev->u.master->public.processInputProc(master_event,
|
e->pDev->u.master->public.processInputProc(master_event,
|
||||||
e->pDev->u.master, e->nevents);
|
e->pDev->u.master, e->nevents);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (e->nevents > 1)
|
if (e->nevents > 1)
|
||||||
xfree(event);
|
xfree(event);
|
||||||
|
|
Loading…
Reference in New Issue