From 14e55b7f5316aa80d54ec4126090a877f2cc282a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 18:48:22 -0700 Subject: [PATCH 1/2] wayland: fix weird regression --- src/backend/wayland.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e049bbea..21ced85d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -465,9 +465,8 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); self->wayland.parent->wayland.currentlyHeldWidget = NULL; } - } else { - MwLLDispatch(self, up, &p); } + MwLLDispatch(self, up, &p); break; } } @@ -1504,10 +1503,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { MwLLDispatch(handle, draw, NULL); handle->wayland.events_pending += 1; - if(handle->wayland.parent != NULL) { - MwLLDispatch(handle->wayland.parent, draw, NULL); - handle->wayland.parent->wayland.events_pending += 1; - } } static void MwLLSetWHImpl(MwLL handle, int w, int h) { @@ -1531,6 +1526,7 @@ refresh: framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); + MwLLDispatch(handle, draw, NULL); if(handle->wayland.parent != NULL) { MwLLDispatch(handle->wayland.parent, draw, NULL); } From d340c64ca3f93f7ab4258c0c7706e11048da3d51 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 18:50:33 -0700 Subject: [PATCH 2/2] wayland: fix weird regressiong --- src/backend/wayland.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 21ced85d..1e32e2cd 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -465,8 +465,9 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); self->wayland.parent->wayland.currentlyHeldWidget = NULL; } + } else { + MwLLDispatch(self, up, &p); } - MwLLDispatch(self, up, &p); break; } } @@ -1403,8 +1404,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_toplevel(r, x, y); } else { setup_sublevel(parent, r, x, y); - MwLLDispatch(parent, draw, NULL); - parent->wayland.events_pending += 1; } framebuffer_setup(&r->wayland); @@ -1413,6 +1412,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { region_setup(r); MwLLForceRender(r); + if(parent != NULL) { + MwLLForceRender(parent); + } return r; } @@ -1527,9 +1529,6 @@ refresh: framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); - if(handle->wayland.parent != NULL) { - MwLLDispatch(handle->wayland.parent, draw, NULL); - } } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) {