summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2013-10-09 18:39:59 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2013-11-20 23:12:34 +0000
commit2f99c6debe8847f305d52751fd9bb521700cd461 (patch)
treeb3e239d84d789d20534121c206d8d5b5b78a8d86
parent3b0bd7e47cb3370cc71a6a39e4fa19e8b25e9be9 (diff)
downloadclutter-2f99c6debe8847f305d52751fd9bb521700cd461.tar.gz
drag-action: don't mix touch and pointer events
https://bugzilla.gnome.org/show_bug.cgi?id=709762 (cherry picked from commit ccd2d4c0a7a789e3aea410f9fafd494949fb0c87) Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
-rw-r--r--clutter/clutter-drag-action.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/clutter/clutter-drag-action.c b/clutter/clutter-drag-action.c
index 669240c1b..0abe8eddb 100644
--- a/clutter/clutter-drag-action.c
+++ b/clutter/clutter-drag-action.c
@@ -364,14 +364,14 @@ on_captured_event (ClutterActor *stage,
if (!priv->in_drag)
return CLUTTER_EVENT_PROPAGATE;
- if (clutter_event_get_device (event) != priv->device)
+ if (clutter_event_get_device (event) != priv->device ||
+ clutter_event_get_event_sequence (event) != priv->sequence)
return CLUTTER_EVENT_PROPAGATE;
switch (clutter_event_type (event))
{
case CLUTTER_TOUCH_UPDATE:
- if (clutter_event_get_event_sequence (event) == priv->sequence)
- emit_drag_motion (action, actor, event);
+ emit_drag_motion (action, actor, event);
break;
case CLUTTER_MOTION:
@@ -391,8 +391,7 @@ on_captured_event (ClutterActor *stage,
case CLUTTER_TOUCH_END:
case CLUTTER_TOUCH_CANCEL:
- if (clutter_event_get_event_sequence (event) == priv->sequence)
- emit_drag_end (action, actor, event);
+ emit_drag_end (action, actor, event);
break;
case CLUTTER_BUTTON_RELEASE:
@@ -427,6 +426,8 @@ on_drag_begin (ClutterActor *actor,
switch (clutter_event_type (event))
{
case CLUTTER_BUTTON_PRESS:
+ if (priv->sequence != NULL)
+ return CLUTTER_EVENT_PROPAGATE;
if (clutter_event_get_button (event) != CLUTTER_BUTTON_PRIMARY)
return CLUTTER_EVENT_PROPAGATE;
break;