linux-packaging-mono/external/bockbuild/packages/patches/gtk/0027-Refrain-from-starting-fading-out-while-a-gesture-is-.patch
Xamarin Public Jenkins (auto-signing) 6bdd276d05 Imported Upstream version 5.0.0.42
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
2017-04-10 11:41:01 +00:00

70 lines
2.6 KiB
Diff

From d35ff9d66c8d76d509819dabc7b97972b76d7438 Mon Sep 17 00:00:00 2001
From: Kristian Rietveld <kris@lanedo.com>
Date: Mon, 8 Oct 2012 11:48:38 +0200
Subject: [PATCH 27/68] Refrain from starting fading out while a gesture is in
progress
---
gtk/gtkscrolledwindow.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 1fba87b..a04436b 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -153,6 +153,7 @@ typedef struct {
gboolean overlay_scrollbars;
gboolean is_snapping_back;
+ gboolean gesture_in_progress;
} GtkScrolledWindowPrivate;
#define GTK_SCROLLED_WINDOW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowPrivate))
@@ -2151,7 +2152,10 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget,
* FIXME: check if overshoot has really ended.
*/
if (event->phase == GDK_EVENT_SCROLL_PHASE_START)
- priv->is_snapping_back = FALSE;
+ {
+ priv->is_snapping_back = FALSE;
+ priv->gesture_in_progress = TRUE;
+ }
if (is_momentum_event && !is_overshot)
gtk_scrolled_window_calculate_velocity (scrolled_window, (GdkEvent *)event);
@@ -2291,13 +2295,20 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget,
/* Reset force if gesture has ended. */
if (event->phase == GDK_EVENT_SCROLL_PHASE_END)
{
+ priv->gesture_in_progress = FALSE;
+
priv->x_force = 0.0;
priv->y_force = 0.0;
}
- /* Stop fade out timeout while we're overshot */
- if (new_overshoot_x != 0 || new_overshoot_y != 0)
+ /* Stop fade out timeout while we're overshot or while
+ * a gesture is in progress.
+ */
+ if (new_overshoot_x != 0 || new_overshoot_y != 0 ||
+ priv->gesture_in_progress)
gtk_scrolled_window_stop_fade_out_timeout (scrolled_window);
+ else
+ gtk_scrolled_window_start_fade_out_timeout (scrolled_window);
/* If we should start a snap back and no current deceleration
* is active, start the snap back.
@@ -3598,7 +3609,8 @@ gtk_scrolled_window_start_fade_in_animation (GtkScrolledWindow *scrolled_window)
g_object_add_weak_pointer (G_OBJECT (priv->opacity_anim),
(gpointer *) &priv->opacity_anim);
- gtk_scrolled_window_start_fade_out_timeout (scrolled_window);
+ if (!priv->gesture_in_progress)
+ gtk_scrolled_window_start_fade_out_timeout (scrolled_window);
}
static void
--
1.7.10.2 (Apple Git-33)