mirror of
https://github.com/labwc/labwc.git
synced 2026-02-06 04:06:33 -05:00
cursor: prevent press on layer-subsurface from cancelling popup grab
Fixes: #1030
This commit is contained in:
parent
be1ef03412
commit
a89bcc3c60
3 changed files with 7 additions and 1 deletions
|
|
@ -36,6 +36,7 @@ enum ssd_part_type {
|
||||||
LAB_SSD_MENU,
|
LAB_SSD_MENU,
|
||||||
LAB_SSD_OSD,
|
LAB_SSD_OSD,
|
||||||
LAB_SSD_LAYER_SURFACE,
|
LAB_SSD_LAYER_SURFACE,
|
||||||
|
LAB_SSD_LAYER_SUBSURFACE,
|
||||||
LAB_SSD_UNMANAGED,
|
LAB_SSD_UNMANAGED,
|
||||||
LAB_SSD_END_MARKER
|
LAB_SSD_END_MARKER
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -922,8 +922,12 @@ cursor_button_press(struct seat *seat, struct wlr_pointer_button_event *event)
|
||||||
seat_set_focus_layer(seat, layer);
|
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
|
* If we have an active popup grab (an open popup) we want to
|
||||||
* cancel that grab whenever the user presses on anything that
|
* cancel that grab whenever the user presses on anything that
|
||||||
|
|
|
||||||
|
|
@ -423,6 +423,7 @@ get_cursor_context(struct server *server)
|
||||||
* setting the margin with the pointer.
|
* setting the margin with the pointer.
|
||||||
*/
|
*/
|
||||||
ret.surface = surface;
|
ret.surface = surface;
|
||||||
|
ret.type = LAB_SSD_LAYER_SUBSURFACE;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue