summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-07-30 23:17:50 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-07-30 23:17:50 +0000
commitcc375a49d7817123f5559941680b94ceb1d4fa57 (patch)
treecfb2ef2c0602b71c7bb1526de20f76b17340adcd /gtk/gtkrange.c
parentfceae3c3bbd541231355662a6d1f0b7f22dd44c0 (diff)
downloadgtk+-cc375a49d7817123f5559941680b94ceb1d4fa57.tar.gz
Handle inverted ranges correctly (#85436, fix from Norihiro UMEDA)
Tue Jul 30 19:09:46 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkrange.c (gtk_range_scroll_event): Handle inverted ranges correctly (#85436, fix from Norihiro UMEDA)
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 38e6f19908..e03978fff3 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -1360,12 +1360,15 @@ gtk_range_scroll_event (GtkWidget *widget,
if (GTK_WIDGET_REALIZED (range))
{
GtkAdjustment *adj = GTK_RANGE (range)->adjustment;
- gdouble new_value = adj->value + ((event->direction == GDK_SCROLL_UP ||
- event->direction == GDK_SCROLL_LEFT) ?
- -adj->page_increment / 2:
- adj->page_increment / 2);
-
- gtk_range_internal_set_value (range, new_value);
+ gdouble increment = ((event->direction == GDK_SCROLL_UP ||
+ event->direction == GDK_SCROLL_LEFT) ?
+ -adj->page_increment / 2:
+ adj->page_increment / 2);
+
+ if (range->inverted)
+ increment = -increment;
+
+ gtk_range_internal_set_value (range, adj->value + increment);
/* Policy DELAYED makes sense with scroll events,
* but DISCONTINUOUS doesn't, so we update immediately