summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@imendio.com>2007-01-02 16:40:44 +0000
committerMichael Natterer <mitch@src.gnome.org>2007-01-02 16:40:44 +0000
commit4bf5344e3d33a497d6bc1644c7da6abd368d9dda (patch)
tree4c26df9fdd7f44c7d2dc9b3017a6bdb90c578ae0 /gtk/gtkrange.c
parent2b267db6db7b93d44704da223ce17211a9af2827 (diff)
downloadgtk+-4bf5344e3d33a497d6bc1644c7da6abd368d9dda.tar.gz
beep when a keybinding didn't change adjustment->value.
2007-01-02 Michael Natterer <mitch@imendio.com> * gtk/gtkrange.c (gtk_range_scroll) (gtk_range_move_slider): beep when a keybinding didn't change adjustment->value. svn path=/trunk/; revision=17021
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 5887dee187..d39f537983 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -162,7 +162,7 @@ static void gtk_range_move_slider (GtkRange *range,
GtkScrollType scroll);
/* Internals */
-static void gtk_range_scroll (GtkRange *range,
+static gboolean gtk_range_scroll (GtkRange *range,
GtkScrollType scroll);
static gboolean gtk_range_update_mouse_location (GtkRange *range);
static void gtk_range_calc_layout (GtkRange *range,
@@ -2353,10 +2353,12 @@ scroll_end (GtkRange *range)
&handled);
}
-static void
+static gboolean
gtk_range_scroll (GtkRange *range,
GtkScrollType scroll)
{
+ gdouble old_value = range->adjustment->value;
+
switch (scroll)
{
case GTK_SCROLL_STEP_LEFT:
@@ -2446,6 +2448,8 @@ gtk_range_scroll (GtkRange *range,
case GTK_SCROLL_NONE:
break;
}
+
+ return range->adjustment->value != old_value;
}
static void
@@ -2488,7 +2492,8 @@ gtk_range_move_slider (GtkRange *range,
}
}
- gtk_range_scroll (range, scroll);
+ if (! gtk_range_scroll (range, scroll))
+ gtk_widget_error_bell (GTK_WIDGET (range));
/* Policy DELAYED makes sense with key events,
* but DISCONTINUOUS doesn't, so we update immediately