cursor: prevent press on layer-subsurface from cancelling popup grab

Fixes: #1030
This commit is contained in:
Johan Malm 2023-08-14 23:38:55 +01:00 committed by Johan Malm
parent be1ef03412
commit a89bcc3c60
3 changed files with 7 additions and 1 deletions

View file

@ -922,8 +922,12 @@ cursor_button_press(struct seat *seat, struct wlr_pointer_button_event *event)
seat_set_focus_layer(seat, layer);
}
}
if (ctx.type == LAB_SSD_LAYER_SUBSURFACE) {
seat_focus_surface(seat, ctx.surface);
}
if (ctx.type != LAB_SSD_CLIENT && wlr_seat_pointer_has_grab(seat->seat)) {
if (ctx.type != LAB_SSD_CLIENT && ctx.type != LAB_SSD_LAYER_SUBSURFACE
&& wlr_seat_pointer_has_grab(seat->seat)) {
/*
* If we have an active popup grab (an open popup) we want to
* cancel that grab whenever the user presses on anything that