mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-25 06:05:58 +01:00
xdg-popup: Handle inert seats
According to the protocol text, the popup will be immediately dismissed when the grab is rejected. Because the grab can't be executed with a destroyed seat, the popup is dismissed when one is provided.
This commit is contained in:
parent
0601813ab6
commit
07e27ba854
1 changed files with 4 additions and 0 deletions
|
@ -274,6 +274,10 @@ static void xdg_popup_handle_grab(struct wl_client *client,
|
||||||
|
|
||||||
struct wlr_seat_client *seat_client =
|
struct wlr_seat_client *seat_client =
|
||||||
wlr_seat_client_from_resource(seat_resource);
|
wlr_seat_client_from_resource(seat_resource);
|
||||||
|
if (seat_client == NULL) {
|
||||||
|
wlr_surface_destroy_role_object(popup->base->surface);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (popup->sent_initial_configure) {
|
if (popup->sent_initial_configure) {
|
||||||
wl_resource_post_error(popup->resource,
|
wl_resource_post_error(popup->resource,
|
||||||
XDG_POPUP_ERROR_INVALID_GRAB,
|
XDG_POPUP_ERROR_INVALID_GRAB,
|
||||||
|
|
Loading…
Reference in a new issue