[gtk+] window: Protect against popover destruction on ::unmap



commit b4b23580a61bd9694e178a1a6b16bcb783fd9013
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Mar 16 13:46:14 2015 +0100

    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

 gtk/gtkwindow.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 1cac7b3..60d66e5 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]