[gtk+] range: Query slider position instead of updating it
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] range: Query slider position instead of updating it
- Date: Wed, 26 Nov 2014 12:55:11 +0000 (UTC)
commit 230aa999679459ab0bdef3dd1f37bd5a58a1838b
Author: Benjamin Otte <otte redhat com>
Date: Tue Nov 25 23:13:21 2014 +0100
range: Query slider position instead of updating it
We're updating it later in the function, there's no need to do it here.
gtk/gtkrange.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 9199d52..6cce63d 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -252,6 +252,9 @@ static void gtk_range_move_slider (GtkRange *range,
GtkScrollType scroll);
/* Internals */
+static void gtk_range_compute_slider_position (GtkRange *range,
+ gdouble adjustment_value,
+ GdkRectangle *slider_rect);
static gboolean gtk_range_scroll (GtkRange *range,
GtkScrollType scroll);
static gboolean gtk_range_update_mouse_location (GtkRange *range);
@@ -2569,6 +2572,7 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
priv->mouse_location == MOUSE_SLIDER)
{
gboolean need_value_update = FALSE;
+ GdkRectangle slider;
/* Any button can be used to drag the slider, but you can start
* dragging the slider with a trough click using button 1;
@@ -2591,11 +2595,7 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
/* compute new value for warped slider */
new_value = slider_low_value + (slider_high_value - slider_low_value) / 2;
- /* recalc slider, so we can set slide_initial_slider_position
- * properly
- */
- priv->need_recalc = TRUE;
- gtk_range_calc_layout (range, new_value);
+ gtk_range_compute_slider_position (range, new_value, &slider);
/* defer adjustment updates to update_slider_position() in order
* to keep pixel quantisation
@@ -2613,17 +2613,19 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
{
update_zoom_state (range, TRUE);
}
+
+ slider = priv->slider;
}
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
{
- priv->slide_initial_slider_position = priv->slider.y;
- priv->slide_initial_coordinate_delta = y - priv->slider.y;
+ priv->slide_initial_slider_position = slider.y;
+ priv->slide_initial_coordinate_delta = y - slider.y;
}
else
{
- priv->slide_initial_slider_position = priv->slider.x;
- priv->slide_initial_coordinate_delta = x - priv->slider.x;
+ priv->slide_initial_slider_position = slider.x;
+ priv->slide_initial_coordinate_delta = x - slider.x;
}
range_grab_add (range, MOUSE_SLIDER);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]