diff options
author | Owen Taylor <otaylor@src.gnome.org> | 1997-12-18 02:17:14 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1997-12-18 02:17:14 +0000 |
commit | d5d01a5af9aaa11762d7ba86760796df00af3786 (patch) | |
tree | c12bb7c7980b3177456cab8987755a976297b205 /gtk/gtkrange.c | |
parent | 65e63db01e93820093c2eb5169d5f8c0be3fe4e5 (diff) | |
download | gtk+-d5d01a5af9aaa11762d7ba86760796df00af3786.tar.gz |
It's all in the changelog. Well, almost all.
-owt
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r-- | gtk/gtkrange.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index f00bbf6838..58c41e43f9 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -195,28 +195,33 @@ gtk_range_set_adjustment (GtkRange *range, g_return_if_fail (range != NULL); g_return_if_fail (GTK_IS_RANGE (range)); - if (range->adjustment) + if (range->adjustment != adjustment) { - gtk_signal_disconnect_by_data (GTK_OBJECT (range->adjustment), (gpointer) range); - gtk_object_unref (GTK_OBJECT (range->adjustment)); + if (range->adjustment) + { + gtk_signal_disconnect_by_data (GTK_OBJECT (range->adjustment), + (gpointer) range); + gtk_object_unref (GTK_OBJECT (range->adjustment)); + } + range->adjustment = adjustment; + if (adjustment) + { + gtk_object_ref (GTK_OBJECT (adjustment)); + gtk_signal_connect (GTK_OBJECT (adjustment), "changed", + (GtkSignalFunc) gtk_range_adjustment_changed, + (gpointer) range); + gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", + (GtkSignalFunc) gtk_range_adjustment_value_changed, + (gpointer) range); + + range->old_value = adjustment->value; + range->old_lower = adjustment->lower; + range->old_upper = adjustment->upper; + range->old_page_size = adjustment->page_size; + + gtk_range_adjustment_changed (adjustment, (gpointer) range); + } } - - range->adjustment = adjustment; - gtk_object_ref (GTK_OBJECT (range->adjustment)); - - gtk_signal_connect (GTK_OBJECT (adjustment), "changed", - (GtkSignalFunc) gtk_range_adjustment_changed, - (gpointer) range); - gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", - (GtkSignalFunc) gtk_range_adjustment_value_changed, - (gpointer) range); - - range->old_value = adjustment->value; - range->old_lower = adjustment->lower; - range->old_upper = adjustment->upper; - range->old_page_size = adjustment->page_size; - - gtk_range_adjustment_changed (range->adjustment, (gpointer) range); } void |