From 8c275a2adf4ad99297a17cabf251344837620831 Mon Sep 17 00:00:00 2001 From: Josselin Mouette Date: Mon, 11 Apr 2011 13:05:32 +0000 Subject: 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 --- 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; -- cgit v0.9