linux-packaging-mono/external/bockbuild/packages/patches/gtk/0036-gtk-add-GtkScrolledWindow-API-to-disable-overshoot-p.patch

101 lines
4.2 KiB
Diff
Raw Normal View History

From 2b8a48086aee90fe60753e5b6f0c415036469f48 Mon Sep 17 00:00:00 2001
From: Michael Natterer <mitch@gimp.org>
Date: Fri, 5 Apr 2013 15:15:08 +0200
Subject: [PATCH 36/68] gtk: add GtkScrolledWindow API to disable overshoot
per widget
And remove some forgotten declarations in the header.
---
gtk/gtkscrolledwindow.c | 33 +++++++++++++++++++++++++++++++--
gtk/gtkscrolledwindow.h | 10 +++-------
2 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 7200462..9def3aa 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -154,6 +154,7 @@ typedef struct {
gboolean overlay_scrollbars;
gboolean is_snapping_back;
gboolean gesture_in_progress;
+ gboolean enable_overshoot;
} GtkScrolledWindowPrivate;
#define GTK_SCROLLED_WINDOW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowPrivate))
@@ -541,6 +542,8 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window)
priv->sb_width = 6;
priv->sb_fade_out_delay = 1000;
+ priv->enable_overshoot = TRUE;
+
g_signal_connect_swapped (priv->opacity, "value-changed",
G_CALLBACK (gtk_scrolled_window_update_scrollbars),
scrolled_window);
@@ -2144,8 +2147,9 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget,
gboolean is_momentum_event = event->momentum_phase != GDK_EVENT_SCROLL_PHASE_NONE;
gboolean legacy_mouse = FALSE;
- if (event->phase == GDK_EVENT_SCROLL_PHASE_NONE &&
- event->momentum_phase == GDK_EVENT_SCROLL_PHASE_NONE)
+ if (!priv->enable_overshoot ||
+ (event->phase == GDK_EVENT_SCROLL_PHASE_NONE &&
+ event->momentum_phase == GDK_EVENT_SCROLL_PHASE_NONE))
legacy_mouse = TRUE;
_gtk_scrolled_window_get_overshoot (scrolled_window,
@@ -3106,6 +3110,31 @@ gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
gtk_container_add (GTK_CONTAINER (viewport), child);
}
+void
+gtk_scrolled_window_set_enable_overshoot (GtkScrolledWindow *scrolled_window,
+ gboolean enable_overshoot)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
+ priv = GTK_SCROLLED_WINDOW_GET_PRIVATE (scrolled_window);
+
+ priv->enable_overshoot = enable_overshoot ? TRUE : FALSE;
+}
+
+gboolean
+gtk_scrolled_window_get_enable_overshoot (GtkScrolledWindow *scrolled_window)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), FALSE);
+
+ priv = GTK_SCROLLED_WINDOW_GET_PRIVATE (scrolled_window);
+
+ return priv->enable_overshoot;
+}
+
/*
* _gtk_scrolled_window_get_spacing:
* @scrolled_window: a scrolled window
diff --git a/gtk/gtkscrolledwindow.h b/gtk/gtkscrolledwindow.h
index 1f555e0..f75596d 100644
--- a/gtk/gtkscrolledwindow.h
+++ b/gtk/gtkscrolledwindow.h
@@ -127,13 +127,9 @@ GtkShadowType gtk_scrolled_window_get_shadow_type (GtkScrolledWindow *scrolle
void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
GtkWidget *child);
-void gtk_scrolled_window_set_kinetic_scrolling (GtkScrolledWindow *scrolled_window,
- gboolean kinetic_scrolling);
-gboolean gtk_scrolled_window_get_kinetic_scrolling (GtkScrolledWindow *scrolled_window);
-
-void gtk_scrolled_window_set_capture_button_press (GtkScrolledWindow *scrolled_window,
- gboolean capture_button_press);
-gboolean gtk_scrolled_window_get_capture_button_press (GtkScrolledWindow *scrolled_window);
+void gtk_scrolled_window_set_enable_overshoot (GtkScrolledWindow *scrolled_window,
+ gboolean enable_overshoot);
+gboolean gtk_scrolled_window_get_enable_overshoot (GtkScrolledWindow *scrolled_window);
gint _gtk_scrolled_window_get_scrollbar_spacing (GtkScrolledWindow *scrolled_window);
--
1.7.10.2 (Apple Git-33)