[gtk+/gtk-3-14] zoom scrolling: avoid 'jumping back'
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-14] zoom scrolling: avoid 'jumping back'
- Date: Wed, 25 Feb 2015 02:26:48 +0000 (UTC)
commit 1c395c900e262b413426fd18d6fdd7f5942f12e3
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Feb 23 06:42:17 2015 -0500
zoom scrolling: avoid 'jumping back'
We record the starting position on button press, but only
start the zoom mode when the long press timeout kicks in.
Depending on circumstances, this can cause a noticable jump.
Avoid this by resetting the recorded starting position after
the long press timeout. Suggested by Sebastian Keller.
gtk/gtkrange.c | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 496f9c1..fbb869c 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -2453,8 +2453,24 @@ gtk_range_long_press_gesture_pressed (GtkGestureLongPress *gesture,
gdouble y,
GtkRange *range)
{
- update_zoom_state (range, TRUE);
- range->priv->zoom_set = TRUE;
+ GtkRangePrivate *priv = range->priv;
+
+ if (!priv->zoom)
+ {
+ if (priv->orientation == GTK_ORIENTATION_VERTICAL)
+ {
+ priv->slide_initial_slider_position = priv->slider.y;
+ priv->slide_initial_coordinate_delta = y - priv->slider.y;
+ }
+ else
+ {
+ priv->slide_initial_slider_position = priv->slider.x;
+ priv->slide_initial_coordinate_delta = x - priv->slider.x;
+ }
+
+ update_zoom_state (range, TRUE);
+ range->priv->zoom_set = TRUE;
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]