diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c index 355e9566..cc1ea8fe 100644 --- a/types/wlr_layer_shell_v1.c +++ b/types/wlr_layer_shell_v1.c @@ -220,6 +220,10 @@ static void layer_surface_handle_get_popup(struct wl_client *client, if (!parent) { return; } + if (popup->parent != NULL) { + wl_resource_post_error(layer_resource, -1, "xdg_popup already has a parent"); + return; + } popup->parent = parent->surface; wl_list_insert(&parent->popups, &popup->link); wl_signal_emit_mutable(&parent->events.new_popup, popup);