diff options
author | Havoc Pennington <hp@redhat.com> | 2001-06-04 19:29:25 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-06-04 19:29:25 +0000 |
commit | cfdca30ce3b8342b2ac3a6e036cd058e80ff5e1c (patch) | |
tree | 731e45b0083084ffba0010865b1073c15ff4e8cd /gtk/gtkrange.c | |
parent | 6a230f1f8bcb33950eef76d5ddb262789f18721c (diff) | |
download | gtk+-cfdca30ce3b8342b2ac3a6e036cd058e80ff5e1c.tar.gz |
on middle click, center slider on the click.
2001-06-04 Havoc Pennington <hp@redhat.com>
* gtk/gtkrange.c (gtk_range_button_press): on middle click, center
slider on the click.
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r-- | gtk/gtkrange.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index e813a14321..942e68e9c3 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -922,15 +922,21 @@ gtk_range_button_press (GtkWidget *widget, */ if (event->button == 2) { - gdouble click_value; - - click_value = coord_to_value (range, - range->orientation == GTK_ORIENTATION_VERTICAL ? - event->y : event->x); + gdouble slider_low_value, slider_high_value; + slider_high_value = + coord_to_value (range, + range->orientation == GTK_ORIENTATION_VERTICAL ? + event->y : event->x); + slider_low_value = + coord_to_value (range, + range->orientation == GTK_ORIENTATION_VERTICAL ? + event->y - range->layout->slider.height : + event->x - range->layout->slider.width); /* middle button jumps to point */ - gtk_range_internal_set_value (range, click_value); + gtk_range_internal_set_value (range, + slider_low_value + (slider_high_value - slider_low_value) / 2); /* Calc layout so we can set slide_initial_slider_position * properly |