[gtk+/native-layout] Disconnect signal handlers on adjustment in destroy handler
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/native-layout] Disconnect signal handlers on adjustment in destroy handler
- Date: Sun, 4 Apr 2010 02:08:06 +0000 (UTC)
commit 71d7b97a90a5ecdbeca5ead6d7dfe6cdcd6d704c
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.
gtk/gtkscrolledwindow.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 0101f47..718bc45 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -858,6 +858,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);
@@ -865,6 +868,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]