[gtk+/gtk-2-18] Disconnect signal handlers on adjustment in destroy handler
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-18] Disconnect signal handlers on adjustment in destroy handler
- Date: Thu, 7 Jan 2010 21:49:47 +0000 (UTC)
commit 71cef6c8a0ec3d5e5d9d7ebf05be956efb45bf7b
Author: Benjamin Otte <otte gnome org>
Date: Sat Dec 19 13:46:18 2009 +0100
Disconnect signal handlers on adjustment in destroy handler
Not removing the signal handler caused crashes if the adjustment
survived longer than the scrolled window and still emitted signals. This
could happen inside WebKit.
(cherry picked from commit ff1343a594383e0d88b1aecdf34025dd3ee36ed6)
gtk/gtkscrolledwindow.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index e1ef633..fdc30b9 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -852,6 +852,9 @@ gtk_scrolled_window_destroy (GtkObject *object)
if (scrolled_window->hscrollbar)
{
+ g_signal_handlers_disconnect_by_func (gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar)),
+ gtk_scrolled_window_adjustment_changed,
+ scrolled_window);
gtk_widget_unparent (scrolled_window->hscrollbar);
gtk_widget_destroy (scrolled_window->hscrollbar);
g_object_unref (scrolled_window->hscrollbar);
@@ -859,6 +862,9 @@ gtk_scrolled_window_destroy (GtkObject *object)
}
if (scrolled_window->vscrollbar)
{
+ g_signal_handlers_disconnect_by_func (gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar)),
+ gtk_scrolled_window_adjustment_changed,
+ scrolled_window);
gtk_widget_unparent (scrolled_window->vscrollbar);
gtk_widget_destroy (scrolled_window->vscrollbar);
g_object_unref (scrolled_window->vscrollbar);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]