[gtk+] gtk-demo: Add 3fg touchpad swipe handling to gestures demo
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gtk-demo: Add 3fg touchpad swipe handling to gestures demo
- Date: Thu, 2 Mar 2017 17:26:26 +0000 (UTC)
commit 8c707e29ff764e85054a709b5d2ae142e0b2c20a
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Mar 2 18:18:31 2017 +0100
gtk-demo: Add 3fg touchpad swipe handling to gestures demo
We can handle those on wayland, so we should show it's possible.
demos/gtk-demo/gestures.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/demos/gtk-demo/gestures.c b/demos/gtk-demo/gestures.c
index 8ef19b0..1e49756 100644
--- a/demos/gtk-demo/gestures.c
+++ b/demos/gtk-demo/gestures.c
@@ -13,6 +13,17 @@ static gdouble swipe_x = 0;
static gdouble swipe_y = 0;
static gboolean long_pressed = FALSE;
+static gboolean
+touchpad_swipe_gesture_begin (GtkGesture *gesture,
+ GdkEventSequence *sequence,
+ GtkWidget *widget)
+{
+ /* Disallow touchscreen events here */
+ if (sequence != NULL)
+ gtk_gesture_set_state (gesture, GTK_EVENT_SEQUENCE_DENIED);
+ return sequence == NULL;
+}
+
static void
swipe_gesture_swept (GtkGestureSwipe *gesture,
gdouble velocity_x,
@@ -156,6 +167,19 @@ do_gestures (GtkWidget *do_widget)
GTK_PHASE_BUBBLE);
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
+ /* 3fg swipe for touchpads */
+ gesture = g_object_new (GTK_TYPE_GESTURE_SWIPE,
+ "widget", drawing_area,
+ "n-points", 3,
+ NULL);
+ g_signal_connect (gesture, "begin",
+ G_CALLBACK (touchpad_swipe_gesture_begin), drawing_area);
+ g_signal_connect (gesture, "swipe",
+ G_CALLBACK (swipe_gesture_swept), drawing_area);
+ gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
+ GTK_PHASE_BUBBLE);
+ g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
+
/* Long press */
gesture = gtk_gesture_long_press_new (drawing_area);
g_signal_connect (gesture, "pressed",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]