summaryrefslogtreecommitdiff
path: root/extra/gnome-panel/fix-crasher-launchers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/gnome-panel/fix-crasher-launchers.patch')
-rw-r--r--extra/gnome-panel/fix-crasher-launchers.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/extra/gnome-panel/fix-crasher-launchers.patch b/extra/gnome-panel/fix-crasher-launchers.patch
new file mode 100644
index 000000000..b15fdf29c
--- /dev/null
+++ b/extra/gnome-panel/fix-crasher-launchers.patch
@@ -0,0 +1,42 @@
+From 8c275a2adf4ad99297a17cabf251344837620831 Mon Sep 17 00:00:00 2001
+From: Josselin Mouette <joss@malsain.org>
+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