From e7deea44fdcbdf256fc7b71f2d8e29205153797a Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Tue, 11 Jun 2024 11:28:09 +0300 Subject: [PATCH] xdg-popup: don't emit parent's new_popup signal too early --- types/xdg_shell/wlr_xdg_popup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/types/xdg_shell/wlr_xdg_popup.c b/types/xdg_shell/wlr_xdg_popup.c index dbc54262..b2cc5b9d 100644 --- a/types/xdg_shell/wlr_xdg_popup.c +++ b/types/xdg_shell/wlr_xdg_popup.c @@ -422,7 +422,6 @@ void create_xdg_popup(struct wlr_xdg_surface *surface, if (parent) { surface->popup->parent = parent->surface; wl_list_insert(&parent->popups, &surface->popup->link); - wl_signal_emit_mutable(&parent->events.new_popup, surface->popup); } else { wl_list_init(&surface->popup->link); } @@ -430,6 +429,9 @@ void create_xdg_popup(struct wlr_xdg_surface *surface, set_xdg_surface_role_object(surface, surface->popup->resource); wl_signal_emit_mutable(&surface->client->shell->events.new_popup, surface->popup); + if (parent) { + wl_signal_emit_mutable(&parent->events.new_popup, surface->popup); + } return;