From 6c5285e45762cd311d21d30ef3a7f1d57a5be0c5 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Wed, 22 Apr 2020 15:39:33 +1000 Subject: [PATCH] Simplify XCheckWindowEvent/TypedWindowEvent to instead use XCheckIfEvent and check if event is for game window --- src/Window.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Window.c b/src/Window.c index 01d46293c..89610319c 100644 --- a/src/Window.c +++ b/src/Window.c @@ -1330,11 +1330,8 @@ static Atom Window_GetSelectionProperty(XEvent* e) { return e->xselectionrequest.target; } -static cc_bool Window_GetPendingEvent(XEvent* e) { - return XCheckWindowEvent(win_display, win_handle, win_eventMask, e) || - XCheckTypedWindowEvent(win_display, win_handle, ClientMessage, e) || - XCheckTypedWindowEvent(win_display, win_handle, SelectionNotify, e) || - XCheckTypedWindowEvent(win_display, win_handle, SelectionRequest, e); +static Bool FilterEvent(Display* d, XEvent* e, XPointer w) { + return e->xany.window == (Window)w; } static void HandleWMDestroy(void) { @@ -1356,7 +1353,7 @@ static void HandleWMPing(XEvent* e) { void Window_ProcessEvents(void) { XEvent e; while (Window_Exists) { - if (!Window_GetPendingEvent(&e)) break; + if (!XCheckIfEvent(win_display, &e, FilterEvent, (XPointer)win_handle)) break; switch (e.type) { case ClientMessage: