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
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