GtkWidget *child;
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
if (hadjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (hadjustment));
else
if (old_adjustment == hadjustment)
return;
- g_signal_handlers_disconnect_by_func (old_adjustment,
- gtk_scrolled_window_adjustment_changed,
- scrolled_window);
+ g_signal_handlers_disconnect_by_data (old_adjustment, scrolled_window);
+
gtk_adjustment_enable_animation (old_adjustment, NULL, 0);
gtk_range_set_adjustment (GTK_RANGE (priv->hscrollbar), hadjustment);
}
+
hadjustment = gtk_range_get_adjustment (GTK_RANGE (priv->hscrollbar));
+
g_signal_connect (hadjustment,
"changed",
G_CALLBACK (gtk_scrolled_window_adjustment_changed),
"value-changed",
G_CALLBACK (gtk_scrolled_window_adjustment_value_changed),
scrolled_window);
+
gtk_scrolled_window_adjustment_changed (hadjustment, scrolled_window);
gtk_scrolled_window_adjustment_value_changed (hadjustment, scrolled_window);
if (gtk_widget_should_animate (GTK_WIDGET (scrolled_window)))
gtk_adjustment_enable_animation (hadjustment, gtk_widget_get_frame_clock (GTK_WIDGET (scrolled_window)), ANIMATION_DURATION);
+
g_object_notify_by_pspec (G_OBJECT (scrolled_window), properties[PROP_HADJUSTMENT]);
}
GtkWidget *child;
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
if (vadjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (vadjustment));
else
if (old_adjustment == vadjustment)
return;
- g_signal_handlers_disconnect_by_func (old_adjustment,
- gtk_scrolled_window_adjustment_changed,
- scrolled_window);
+ g_signal_handlers_disconnect_by_data (old_adjustment, scrolled_window);
+
gtk_adjustment_enable_animation (old_adjustment, NULL, 0);
gtk_range_set_adjustment (GTK_RANGE (priv->vscrollbar), vadjustment);
}
+
vadjustment = gtk_range_get_adjustment (GTK_RANGE (priv->vscrollbar));
+
g_signal_connect (vadjustment,
"changed",
G_CALLBACK (gtk_scrolled_window_adjustment_changed),
"value-changed",
G_CALLBACK (gtk_scrolled_window_adjustment_value_changed),
scrolled_window);
+
gtk_scrolled_window_adjustment_changed (vadjustment, scrolled_window);
gtk_scrolled_window_adjustment_value_changed (vadjustment, scrolled_window);
if (priv->hscrollbar)
{
- g_signal_handlers_disconnect_by_func (gtk_range_get_adjustment (GTK_RANGE (priv->hscrollbar)),
- gtk_scrolled_window_adjustment_changed,
- scrolled_window);
+ GtkAdjustment *hadjustment = gtk_range_get_adjustment (GTK_RANGE (priv->hscrollbar));
+
+ g_signal_handlers_disconnect_by_data (hadjustment, scrolled_window);
+ g_signal_handlers_disconnect_by_data (hadjustment, &priv->hindicator);
+
gtk_widget_unparent (priv->hscrollbar);
priv->hscrollbar = NULL;
}
+
if (priv->vscrollbar)
{
- g_signal_handlers_disconnect_by_func (gtk_range_get_adjustment (GTK_RANGE (priv->vscrollbar)),
- gtk_scrolled_window_adjustment_changed,
- scrolled_window);
+ GtkAdjustment *vadjustment = gtk_range_get_adjustment (GTK_RANGE (priv->vscrollbar));
+
+ g_signal_handlers_disconnect_by_data (vadjustment, scrolled_window);
+ g_signal_handlers_disconnect_by_data (vadjustment, &priv->vindicator);
+
gtk_widget_unparent (priv->vscrollbar);
priv->vscrollbar = NULL;
}
indicator->scrollbar = NULL;
context = gtk_widget_get_style_context (scrollbar);
+ gtk_style_context_remove_class (context, "overlay-indicator");
+
adjustment = gtk_range_get_adjustment (GTK_RANGE (scrollbar));
+ g_signal_handlers_disconnect_by_data (adjustment, indicator);
- gtk_style_context_remove_class (context, "overlay-indicator");
- g_signal_handlers_disconnect_by_func (adjustment, indicator_value_changed, indicator);
if (indicator->conceil_timer)
{
g_source_remove (indicator->conceil_timer);