summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@src.gnome.org>1997-12-18 02:17:14 +0000
committerOwen Taylor <otaylor@src.gnome.org>1997-12-18 02:17:14 +0000
commitd5d01a5af9aaa11762d7ba86760796df00af3786 (patch)
treec12bb7c7980b3177456cab8987755a976297b205 /gtk/gtkrange.c
parent65e63db01e93820093c2eb5169d5f8c0be3fe4e5 (diff)
downloadgtk+-d5d01a5af9aaa11762d7ba86760796df00af3786.tar.gz
It's all in the changelog. Well, almost all.
-owt
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c45
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