[gtk+/wip/matthiasc/zoom-scroll-improvements: 1/4] long press: Add a private API to slow it down
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/zoom-scroll-improvements: 1/4] long press: Add a private API to slow it down
- Date: Mon, 23 Feb 2015 01:12:20 +0000 (UTC)
commit 7b90dc50de9c5a6e7e960b6168215b003b0dc7d2
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Feb 22 17:48:39 2015 -0500
long press: Add a private API to slow it down
Add a way to set a delay factor that can be used
to make the long press more or less sensitive.
Keep this private for now.
gtk/gtkgesturelongpress.c | 20 +++++++++++++++++++-
gtk/gtkgesturelongpressprivate.h | 3 +++
2 files changed, 22 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkgesturelongpress.c b/gtk/gtkgesturelongpress.c
index 09ac12d..920ba52 100644
--- a/gtk/gtkgesturelongpress.c
+++ b/gtk/gtkgesturelongpress.c
@@ -54,6 +54,7 @@ struct _GtkGestureLongPressPrivate
gdouble initial_x;
gdouble initial_y;
+ gdouble factor;
guint timeout_id;
guint delay;
guint cancelled : 1;
@@ -67,6 +68,10 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureLongPress, gtk_gesture_long_press, GTK_TYP
static void
gtk_gesture_long_press_init (GtkGestureLongPress *gesture)
{
+ GtkGestureLongPressPrivate *priv;
+
+ priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (gesture));
+ priv->factor = 1.0;
}
static gboolean
@@ -121,7 +126,10 @@ gtk_gesture_long_press_begin (GtkGesture *gesture,
widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
g_object_get (gtk_widget_get_settings (widget),
- "gtk-long-press-time", &delay, NULL);
+ "gtk-long-press-time", &delay,
+ NULL);
+
+ delay = (gint)(priv->factor * delay);
gtk_gesture_get_point (gesture, sequence,
&priv->initial_x, &priv->initial_y);
@@ -276,3 +284,13 @@ gtk_gesture_long_press_new (GtkWidget *widget)
"widget", widget,
NULL);
}
+
+void
+gtk_gesture_long_press_set_delay_factor (GtkGestureLongPress *gesture,
+ gdouble factor)
+{
+ GtkGestureLongPressPrivate *priv;
+
+ priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (gesture));
+ priv->factor = factor;
+}
diff --git a/gtk/gtkgesturelongpressprivate.h b/gtk/gtkgesturelongpressprivate.h
index 5b9aa88..01c008b 100644
--- a/gtk/gtkgesturelongpressprivate.h
+++ b/gtk/gtkgesturelongpressprivate.h
@@ -41,4 +41,7 @@ struct _GtkGestureLongPressClass
gpointer padding[10];
};
+void gtk_gesture_long_press_set_delay_factor (GtkGestureLongPress *gesture,
+ gdouble factor);
+
#endif /* __GTK_GESTURE_LONG_PRESS_PRIVATE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]