[clutter/clutter-1.18] gesture-action: Prepare for	clutter_gesture_action_cancel() within ::gesture-end
- From: Emmanuele Bassi <ebassi src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [clutter/clutter-1.18] gesture-action: Prepare for	clutter_gesture_action_cancel() within ::gesture-end
 
- Date: Wed, 13 Aug 2014 10:36:20 +0000 (UTC)
 
commit ef0d2d3ddafd6e066f079c5381b586d16db97ee0
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Jul 8 18:20:26 2014 +0200
    gesture-action: Prepare for clutter_gesture_action_cancel() within ::gesture-end
    
    There may be odd situations where full gesture cancellation may be wanted at once
    when the first touch is lifted and ::gesture-end is emitted on a gesture action.
    Although calling clutter_gesture_action_cancel() within the ::gesture-end handler
    causes 2 critical warnings that are otherwise harmless.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732907
    (cherry picked from commit 8d669ab8ceb9ad1cfb03e69d32e30033070961a6)
    Signed-off-by: Emmanuele Bassi <ebassi gnome org>
 clutter/clutter-gesture-action.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/clutter/clutter-gesture-action.c b/clutter/clutter-gesture-action.c
index f4e8418..da415d5 100644
--- a/clutter/clutter-gesture-action.c
+++ b/clutter/clutter-gesture-action.c
@@ -224,6 +224,9 @@ gesture_unregister_point (ClutterGestureAction *action, gint position)
 {
   ClutterGestureActionPrivate *priv = action->priv;
 
+  if (action->priv->points->len == 0)
+    return;
+
   g_array_remove_index (priv->points, position);
 }
 
@@ -480,7 +483,7 @@ stage_captured_event_cb (ClutterActor         *stage,
       break;
     }
 
-  if (priv->points->len == 0)
+  if (priv->points->len == 0 && priv->stage_capture_id)
     {
       g_signal_handler_disconnect (priv->stage, priv->stage_capture_id);
       priv->stage_capture_id = 0;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]