From 6eeb0d5b9aa5cf2d979017425c6724731a0846e5 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 12 Oct 2017 19:59:46 -0400 Subject: [PATCH] Process X events before timers --- src/gui/jtk/Jtk_event.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/gui/jtk/Jtk_event.cc b/src/gui/jtk/Jtk_event.cc index bf8ac3d..db8d9a5 100644 --- a/src/gui/jtk/Jtk_event.cc +++ b/src/gui/jtk/Jtk_event.cc @@ -298,7 +298,16 @@ void Jtk_WaitEvent(Jtk_Event * event) { for (;;) { - /* First check if any timer has expired. */ + /* First check for an X event. */ + while (XPending(g_display) > 0) + { + XEvent x_event; + XNextEvent(g_display, &x_event); + if (ProcessXEvent(&x_event, event)) + return; + } + + /* Next check if any timer has expired. */ size_t timer_id = Jtk_GetExpiredTimer(); if (timer_id != (size_t)-1) { @@ -321,15 +330,6 @@ void Jtk_WaitEvent(Jtk_Event * event) return; } - /* Next check for an X event. */ - while (XPending(g_display) > 0) - { - XEvent x_event; - XNextEvent(g_display, &x_event); - if (ProcessXEvent(&x_event, event)) - return; - } - /* Finally, wait for something to happen. */ uint64_t time_to_wait = Jtk_TimeToNextTimerExpiration(); if (time_to_wait > MAX_WAIT_TIME)