summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2001-06-04 19:29:25 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-06-04 19:29:25 +0000
commitcfdca30ce3b8342b2ac3a6e036cd058e80ff5e1c (patch)
tree731e45b0083084ffba0010865b1073c15ff4e8cd /gtk/gtkrange.c
parent6a230f1f8bcb33950eef76d5ddb262789f18721c (diff)
downloadgtk+-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.c18
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