From 4d03fc22ab52aa90080b8a04a6db7faa5e0a8abd Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 3 Sep 2008 09:22:01 -0700 Subject: [PATCH] mieqProcessInputEvents: Check custom event handlers first. (cherry picked from commit c9ac2f5753e572c354ebccdb94c0a009cc7515ce) --- mi/mieq.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mi/mieq.c b/mi/mieq.c index aaa247d6c..7d19f499a 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -213,25 +213,24 @@ mieqProcessInputEvents(void) #endif e = &miEventQueue.events[miEventQueue.head]; - /* Assumption - screen switching can only occur on motion events. */ miEventQueue.head = (miEventQueue.head + 1) % QUEUE_SIZE; - if (e->pScreen != miEventQueue.pDequeueScreen) { + if (miEventQueue.handlers[e->event->u.u.type]) { + /* If someone's registered a custom event handler, let them + * steal it. */ + miEventQueue.handlers[e->event->u.u.type](miEventQueue.pDequeueScreen->myNum, + e->event, dev, + e->nevents); + return; + } + else if (e->pScreen != miEventQueue.pDequeueScreen) { + /* Assumption - screen switching can only occur on motion events. */ miEventQueue.pDequeueScreen = e->pScreen; x = e->event[0].u.keyButtonPointer.rootX; y = e->event[0].u.keyButtonPointer.rootY; NewCurrentScreen (miEventQueue.pDequeueScreen, x, y); } else { - /* If someone's registered a custom event handler, let them - * steal it. */ - if (miEventQueue.handlers[e->event->u.u.type]) { - miEventQueue.handlers[e->event->u.u.type](miEventQueue.pDequeueScreen->myNum, - e->event, dev, - e->nevents); - return; - } - /* If this is a core event, make sure our keymap, et al, is * changed to suit. */ if (e->event[0].u.u.type == KeyPress ||