blob: b15fdf29c0b5edfaebef58d02aff7524c6aa9123 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
|