diff --git a/sway/input/text_input.c b/sway/input/text_input.c index a2ab21db4..e6b321131 100644 --- a/sway/input/text_input.c +++ b/sway/input/text_input.c @@ -276,9 +276,17 @@ static void input_popup_update(struct sway_input_popup *popup) { return; } - if (!popup->popup_surface->surface->mapped) { + if (popup->scene_tree != NULL) { + wlr_scene_node_destroy(&popup->scene_tree->node); popup->scene_tree = NULL; - popup->desc.view = NULL; + } + if (popup->desc.relative != NULL) { + wlr_scene_node_destroy(popup->desc.relative); + popup->desc.relative = NULL; + } + popup->desc.view = NULL; + + if (!popup->popup_surface->surface->mapped) { return; }