From: Carlos Garnacho Date: Mon, 16 Mar 2015 12:46:14 +0000 (+0100) Subject: window: Protect against popover destruction on ::unmap X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~24^2~10170 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b4b23580a61bd9694e178a1a6b16bcb783fd9013;p=gtk4.git window: Protect against popover destruction on ::unmap On popover_unmap(), perform the gtk_widget_unmap() call last, so the GtkWindowPopover data is ensured to be alive throughout the function if the popover widget is destroyed right on ::unmap. https://bugzilla.gnome.org/show_bug.cgi?id=745829 --- diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 1cac7b39c1..60d66e5c47 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -5955,17 +5955,17 @@ static void popover_unmap (GtkWidget *widget, GtkWindowPopover *popover) { - if (popover->window) - { - gtk_widget_unmap (popover->widget); - gdk_window_hide (popover->window); - } - if (popover->unmap_id) { g_signal_handler_disconnect (widget, popover->unmap_id); popover->unmap_id = 0; } + + if (popover->window) + { + gdk_window_hide (popover->window); + gtk_widget_unmap (popover->widget); + } } static void