diff --git a/src/backend/wayland/wl_backend.c b/src/backend/wayland/wl_backend.c index abc1366..78b9591 100644 --- a/src/backend/wayland/wl_backend.c +++ b/src/backend/wayland/wl_backend.c @@ -5206,6 +5206,19 @@ handle_pointer_button(struct wl_listener *listener, void *data) wl_list_remove(&view->link); wl_list_insert(&wl_state.toplevel_list, &view->link); } + } else { + /* No toplevel surface — check if a WINGs dialog frame_buf was clicked */ + struct wl_frame_buf *hit = frame_buf_hit(wl_state.pointer_x, + wl_state.pointer_y); + if (hit && hit->id >= 0x20000000) { + WObjDescriptor *desc = + wm_backend->context_find(hit->id, WM_CTX_CLIENT_WIN); + if (desc && desc->parent_type == WCLASS_WINDOW) { + WWindow *wwin = (WWindow *)desc->parent; + WScreen *scr = wScreenWithNumber(0); + wSetFocusTo(scr, wwin); + } + } } }