mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -05:00
cursor: cancel popup grab on mouse-press outside client itself
...for example on any part of the server side decoration Supercedes #826 for xdg-shell popups Helped-by: @Consolatis
This commit is contained in:
parent
e39744f1d3
commit
3111c57d6f
1 changed files with 9 additions and 2 deletions
11
src/cursor.c
11
src/cursor.c
|
|
@ -923,8 +923,15 @@ cursor_button_press(struct seat *seat, struct wlr_pointer_button_event *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.type == LAB_SSD_ROOT && wlr_seat_pointer_has_grab(seat->seat)) {
|
if (ctx.type != LAB_SSD_CLIENT && wlr_seat_pointer_has_grab(seat->seat)) {
|
||||||
/* Let a click on the desktop cancel an active popup grab */
|
/*
|
||||||
|
* If we have an active popup grab (an open popup) we want to
|
||||||
|
* cancel that grab whenever the user presses on anything that
|
||||||
|
* is not the client itself, for example the desktop or any
|
||||||
|
* part of the server side decoration.
|
||||||
|
*
|
||||||
|
* Note: This does not work for XWayland clients
|
||||||
|
*/
|
||||||
wlr_seat_pointer_end_grab(seat->seat);
|
wlr_seat_pointer_end_grab(seat->seat);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue