From: Daniel Boles Date: Fri, 1 Sep 2017 15:03:36 +0000 (+0100) Subject: ScrolledWindow: Dodge possible surplus disconnects X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~258 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=423cd8e73e63dc27a2749a3b83613edbd35df767;p=gtk%2B3.0.git ScrolledWindow: Dodge possible surplus disconnects In case the outgoing Adjustment for whatever reason has other handlers referring to this SW, be sure to avoid disconnecting any but our own. --- diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 3058d3b37a..25e5d1cd3a 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -2258,7 +2258,12 @@ gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window, if (old_adjustment == hadjustment) return; - g_signal_handlers_disconnect_by_data (old_adjustment, scrolled_window); + g_signal_handlers_disconnect_by_func (old_adjustment, + gtk_scrolled_window_adjustment_changed, + scrolled_window); + g_signal_handlers_disconnect_by_func (old_adjustment, + gtk_scrolled_window_adjustment_value_changed, + scrolled_window); gtk_adjustment_enable_animation (old_adjustment, NULL, 0); gtk_range_set_adjustment (GTK_RANGE (priv->hscrollbar), hadjustment); @@ -2329,7 +2334,12 @@ gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window, if (old_adjustment == vadjustment) return; - g_signal_handlers_disconnect_by_data (old_adjustment, scrolled_window); + g_signal_handlers_disconnect_by_func (old_adjustment, + gtk_scrolled_window_adjustment_changed, + scrolled_window); + g_signal_handlers_disconnect_by_func (old_adjustment, + gtk_scrolled_window_adjustment_value_changed, + scrolled_window); gtk_adjustment_enable_animation (old_adjustment, NULL, 0); gtk_range_set_adjustment (GTK_RANGE (priv->vscrollbar), vadjustment);