From ddc745dab8b03e25e77e143aafb8e26a7af299d1 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 23 Jan 2025 21:11:51 +0100 Subject: Fix MappingNotify never handled --- src/window/window.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/window/window.c') diff --git a/src/window/window.c b/src/window/window.c index 9280e32..2c7077d 100644 --- a/src/window/window.c +++ b/src/window/window.c @@ -1512,6 +1512,7 @@ static void mgl_window_on_receive_event(mgl_window *self, XEvent *xev, mgl_event return; } case MappingNotify: { + /* TODO: Only handle this globally once for mgl, not for each window */ XRefreshKeyboardMapping(&xev->xmapping); event->type = MGL_EVENT_MAPPING_CHANGED; event->mapping_changed.type = MappingModifier; @@ -1526,7 +1527,7 @@ static void mgl_window_on_receive_event(mgl_window *self, XEvent *xev, mgl_event event->mapping_changed.type = MGL_MAPPING_CHANGED_POINTER; break; } - break; + return; } default: { event->type = MGL_EVENT_UNKNOWN; @@ -1552,7 +1553,7 @@ bool mgl_window_poll_event(mgl_window *self, mgl_event *event) { if(XPending(display)) { XEvent xev; /* TODO: Move to window struct */ XNextEvent(display, &xev); - if(xev.xany.window == self->window || xev.type == ClientMessage || xev.type - context->randr_event_base >= 0) + if(xev.xany.window == self->window || xev.type == ClientMessage || xev.type == MappingNotify || xev.type - context->randr_event_base >= 0) mgl_window_on_receive_event(self, &xev, event, context, false); else event->type = MGL_EVENT_UNKNOWN; -- cgit v1.2.3