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
This commit is contained in:
@ -5955,17 +5955,17 @@ static void
|
|||||||
popover_unmap (GtkWidget *widget,
|
popover_unmap (GtkWidget *widget,
|
||||||
GtkWindowPopover *popover)
|
GtkWindowPopover *popover)
|
||||||
{
|
{
|
||||||
if (popover->window)
|
|
||||||
{
|
|
||||||
gtk_widget_unmap (popover->widget);
|
|
||||||
gdk_window_hide (popover->window);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (popover->unmap_id)
|
if (popover->unmap_id)
|
||||||
{
|
{
|
||||||
g_signal_handler_disconnect (widget, popover->unmap_id);
|
g_signal_handler_disconnect (widget, popover->unmap_id);
|
||||||
popover->unmap_id = 0;
|
popover->unmap_id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (popover->window)
|
||||||
|
{
|
||||||
|
gdk_window_hide (popover->window);
|
||||||
|
gtk_widget_unmap (popover->widget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user