From 4bf5344e3d33a497d6bc1644c7da6abd368d9dda Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Tue, 2 Jan 2007 16:40:44 +0000 Subject: [PATCH] beep when a keybinding didn't change adjustment->value. 2007-01-02 Michael Natterer * gtk/gtkrange.c (gtk_range_scroll) (gtk_range_move_slider): beep when a keybinding didn't change adjustment->value. svn path=/trunk/; revision=17021 --- ChangeLog | 5 +++++ gtk/gtkrange.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9c68fbc49..81660e875 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-01-02 Michael Natterer + + * gtk/gtkrange.c (gtk_range_scroll) (gtk_range_move_slider): beep + when a keybinding didn't change adjustment->value. + 2007-01-02 Matthias Clasen * gtk/gtktextbuffer.c (gtk_text_view_key_press_event): diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 5887dee18..d39f53798 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