window: Properly destroy tooltip windows when parent window is destroyed
If we destroy a window with an active tooltip, we leave the tooltip
hanging around. Call tooltip destructor when destroying a window.
This fixes the stuck tooltip observed when unplugging a monitor with
an active tooltip on the panel.
Closes: https://bugs.freedesktop.org/show_bug.cgi?id=72931
diff --git a/clients/window.c b/clients/window.c
index 19519b3..d59b9c7 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -1653,10 +1653,8 @@
if (surface->widget == widget && surface->subsurface)
surface_destroy(widget->surface);
- if (widget->tooltip) {
- free(widget->tooltip);
- widget->tooltip = NULL;
- }
+ if (widget->tooltip)
+ widget_destroy_tooltip(widget);
wl_list_for_each(input, &display->input_list, link) {
if (input->focus_widget == widget)