PATCH: Arrows in spin button do not get redrawn if adjustment changes
- From: Federico Mena Quintero <federico helixcode com>
- To: gtk-devel-list gnome org
- Subject: PATCH: Arrows in spin button do not get redrawn if adjustment changes
- Date: Wed, 8 Nov 2000 12:32:18 -0600
Hello,
GtkSpinButton does not redraw its arrows if the adjustment emits the
"changed" signal, for example, when it changes its valid range. I had
this problem in the Evolution calendar; I change the range of an
adjustment depending on some other option, and I need the spin button
to reflect this. Here is a ChangeLog and a patch to fix this. Is it
OK to commit?
Federico
2000-11-08 Federico Mena Quintero <federico helixcode com>
* gtk/gtkspinbutton.c (gtk_spin_button_set_adjustment): Connect to
the "changed" callback of the adjustment. We need to redraw the
spin button's arrows when the adjustment's range changes.
(adjustment_changed_cb): Draw the arrows.
diff -uNr gtk+-1.2.8/gtk/gtkspinbutton.c gtk+-1.2.8-fmq0/gtk/gtkspinbutton.c
--- gtk+-1.2.8/gtk/gtkspinbutton.c Thu Feb 10 09:14:48 2000
+++ gtk+-1.2.8-fmq0/gtk/gtkspinbutton.c Wed Nov 8 12:08:13 2000
@@ -1353,6 +1353,20 @@
return GTK_WIDGET (spin);
}
+/* Callback used when the spin button's adjustment changes. We need to redraw
+ * the arrows when the adjustment's range changes.
+ */
+static void
+adjustment_changed_cb (GtkAdjustment *adjustment, gpointer data)
+{
+ GtkSpinButton *spin_button;
+
+ spin_button = GTK_SPIN_BUTTON (data);
+
+ gtk_spin_button_draw_arrow (spin_button, GTK_ARROW_UP);
+ gtk_spin_button_draw_arrow (spin_button, GTK_ARROW_DOWN);
+}
+
void
gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
GtkAdjustment *adjustment)
@@ -1375,6 +1389,9 @@
gtk_object_sink (GTK_OBJECT (adjustment));
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
(GtkSignalFunc) gtk_spin_button_value_changed,
+ (gpointer) spin_button);
+ gtk_signal_connect (GTK_OBJECT (adjustment), "changed",
+ (GtkSignalFunc) adjustment_changed_cb,
(gpointer) spin_button);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]