diff options
author | Bastien Nocera <hadess@hadess.net> | 2014-11-25 17:49:50 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2014-11-25 17:49:50 +0100 |
commit | 99dcbf8e9a97c261aa9620e038e5958dc1a9e975 (patch) | |
tree | 678f03507980743c8d5f73f7a34bb340b6d73637 | |
parent | ebcee7db419fd85945321db004534b1768eaa7ea (diff) | |
download | totem-99dcbf8e9a97c261aa9620e038e5958dc1a9e975.tar.gz |
backend: Request next track when swiping with 2 fingers
https://bugzilla.gnome.org/show_bug.cgi?id=697896
-rw-r--r-- | src/backend/bacon-video-widget.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/backend/bacon-video-widget.c b/src/backend/bacon-video-widget.c index 948eb91f1..e86161f7d 100644 --- a/src/backend/bacon-video-widget.c +++ b/src/backend/bacon-video-widget.c @@ -919,12 +919,23 @@ bacon_video_widget_swipe (ClutterSwipeAction *action, return CLUTTER_EVENT_PROPAGATE; } - if (direction & CLUTTER_SWIPE_DIRECTION_LEFT) - g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_SEEK_REQUESTED], 0, - gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_RTL); - if (direction & CLUTTER_SWIPE_DIRECTION_RIGHT) - g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_SEEK_REQUESTED], 0, - gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_LTR); + if (direction & CLUTTER_SWIPE_DIRECTION_LEFT) { + if (clutter_gesture_action_get_n_touch_points (CLUTTER_GESTURE_ACTION (action)) == 1) + g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_SEEK_REQUESTED], 0, + gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_RTL); + else + g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_TRACK_SKIP_REQUESTED], 0, + gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_RTL); + } + + if (direction & CLUTTER_SWIPE_DIRECTION_RIGHT) { + if (clutter_gesture_action_get_n_touch_points (CLUTTER_GESTURE_ACTION (action)) == 1) + g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_SEEK_REQUESTED], 0, + gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_LTR); + else + g_signal_emit (G_OBJECT (bvw), bvw_signals[SIGNAL_TRACK_SKIP_REQUESTED], 0, + gtk_widget_get_direction (GTK_WIDGET (bvw)) == GTK_TEXT_DIR_LTR); + } return CLUTTER_EVENT_STOP; } @@ -6008,6 +6019,13 @@ bacon_video_widget_initable_init (GInitable *initable, g_signal_connect (action, "swipe", G_CALLBACK (bacon_video_widget_swipe), bvw); + action = clutter_swipe_action_new (); + clutter_gesture_action_set_threshold_trigger_distance (CLUTTER_GESTURE_ACTION (action), 80.0, 80.0); + clutter_gesture_action_set_n_touch_points (CLUTTER_GESTURE_ACTION (action), 2); + clutter_actor_add_action (bvw->priv->texture, action); + g_signal_connect (action, "swipe", + G_CALLBACK (bacon_video_widget_swipe), bvw); + /* The spinner */ bvw->priv->spinner = bacon_video_spinner_actor_new (); clutter_actor_set_name (bvw->priv->spinner, "spinner"); |