[gnome-panel] panel: Fix crash when starting launcher



commit 8c275a2adf4ad99297a17cabf251344837620831
Author: Josselin Mouette <joss malsain org>
Date:   Mon Apr 11 15:05:32 2011 +0200

    panel: Fix crash when starting launcher
    
    Do not destroy a widget in its draw signal. This is bad. Really.
    
    This was happening in the animation that is being drawn after clicking a
    launcher.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=641325

 gnome-panel/xstuff.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/gnome-panel/xstuff.c b/gnome-panel/xstuff.c
index 8465341..5acbf66 100644
--- a/gnome-panel/xstuff.c
+++ b/gnome-panel/xstuff.c
@@ -305,6 +305,14 @@ zoom_timeout (GtkWidget *window)
 }
 
 static gboolean
+idle_destroy (gpointer data)
+{
+	gtk_widget_destroy (GTK_WIDGET (data));
+
+	return FALSE;
+}
+
+static gboolean
 zoom_draw (GtkWidget *widget,
 	   cairo_t   *cr,
            gpointer    user_data)
@@ -323,7 +331,7 @@ zoom_draw (GtkWidget *widget,
 
 		g_slice_free (CompositedZoomData, zoom);
 
-		gtk_widget_destroy (widget);
+		g_idle_add (idle_destroy, widget);
 	} else {
 		GdkPixbuf *scaled;
 		int width, height;



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