summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuele Aina <emanuele.aina@collabora.com>2012-10-05 12:21:10 +0200
committerEmanuele Aina <emanuele.aina@collabora.com>2012-10-10 21:15:48 +0200
commit94272a41fd62ef0efb8dd1090a837275356dba4d (patch)
treeb0ad795e103b83e9f69ff9279ce28aac6bcb0301
parent6b1ae5c4ef9ed826a98085ea873729e08c69d97e (diff)
downloadclutter-94272a41fd62ef0efb8dd1090a837275356dba4d.tar.gz
gesture-action: Make _cancel() callable after the gesture has started
https://bugzilla.gnome.org/show_bug.cgi?id=685554
-rw-r--r--clutter/clutter-gesture-action.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/clutter/clutter-gesture-action.c b/clutter/clutter-gesture-action.c
index d18e19f31..4c9460b23 100644
--- a/clutter/clutter-gesture-action.c
+++ b/clutter/clutter-gesture-action.c
@@ -292,6 +292,11 @@ stage_captured_event_cb (ClutterActor *stage,
return CLUTTER_EVENT_PROPAGATE;
}
+ /* clutter_gesture_action_cancel() may have been called during
+ * gesture_prepare(), check that the gesture is still active. */
+ if (!priv->in_gesture)
+ return CLUTTER_EVENT_PROPAGATE;
+
g_signal_emit (action, gesture_signals[GESTURE_BEGIN], 0, actor,
&return_value);
if (!return_value)
@@ -916,7 +921,6 @@ void
clutter_gesture_action_cancel (ClutterGestureAction *action)
{
g_return_if_fail (CLUTTER_IS_GESTURE_ACTION (action));
- g_return_if_fail (!action->priv->in_gesture);
cancel_gesture (action);