summaryrefslogtreecommitdiff
path: root/gtk/gtkspinbutton.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkspinbutton.c')
-rw-r--r--gtk/gtkspinbutton.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index 869a0f2656..58f69d616f 100644
--- a/gtk/gtkspinbutton.c
+++ b/gtk/gtkspinbutton.c
@@ -28,6 +28,7 @@
#include "gdk/gdkkeysyms.h"
#include "gtkspinbutton.h"
#include "gtkmain.h"
+#include "gtkprivate.h"
#include "gtksignal.h"
@@ -907,8 +908,9 @@ gtk_spin_button_motion_notify (GtkWidget *widget,
static gint
gtk_spin_button_timer (GtkSpinButton *spin_button)
{
- g_return_val_if_fail (spin_button != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SPIN_BUTTON (spin_button), FALSE);
+ gboolean retval = FALSE;
+
+ GTK_THREADS_ENTER;
if (spin_button->timer)
{
@@ -923,22 +925,27 @@ gtk_spin_button_timer (GtkSpinButton *spin_button)
spin_button->timer = gtk_timeout_add
(SPIN_BUTTON_TIMER_DELAY, (GtkFunction) gtk_spin_button_timer,
(gpointer) spin_button);
- return FALSE;
}
- else if (spin_button->climb_rate > 0.0 && spin_button->timer_step
- < spin_button->adjustment->page_increment)
+ else
{
- if (spin_button->timer_calls < MAX_TIMER_CALLS)
- spin_button->timer_calls++;
- else
+ if (spin_button->climb_rate > 0.0 && spin_button->timer_step
+ < spin_button->adjustment->page_increment)
{
- spin_button->timer_calls = 0;
- spin_button->timer_step += spin_button->climb_rate;
+ if (spin_button->timer_calls < MAX_TIMER_CALLS)
+ spin_button->timer_calls++;
+ else
+ {
+ spin_button->timer_calls = 0;
+ spin_button->timer_step += spin_button->climb_rate;
+ }
}
+ retval = TRUE;
}
- return TRUE;
}
- return FALSE;
+
+ GTK_THREADS_LEAVE;
+
+ return retval;
}
static void