fix opengl wayland flicklering

This commit is contained in:
IoIxD 2026-05-05 19:04:19 -07:00
commit 801c5e03d4
3 changed files with 6 additions and 6 deletions

View file

@ -783,7 +783,11 @@ static void keyboard_key(void* data,
if(key != -1) {
if(state == WL_KEYBOARD_KEY_STATE_PRESSED) {
MwLLDispatch(self, key, &key);
MwLL topmost_parent = self;
while(topmost_parent->wayland.parent) {
MwLLDispatch(topmost_parent, key, &key);
topmost_parent = topmost_parent->wayland.parent;
}
} else {
MwLLDispatch(self, key_released, &key);
}

View file

@ -1108,11 +1108,6 @@ static int MwLLPendingImpl(MwLL handle) {
if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) {
wl_display_cancel_read(handle->wayland.display);
}
}
if(MwWaylandAlwaysRender) {
handle->wayland.did_event_loop_early = MwTRUE;
event_loop(handle);
return pending;
}

View file

@ -870,6 +870,7 @@ void MwDispatchUserHandler(MwWidget handle, const char* key, void* handler_data)
int ind = shgeti(handle->handler, key);
int p = handle->prop_event;
int i;
if(ind == -1) return;
if(handle->destroyed) return;