[clutter/clutter-1.20] drop-action: Use the right state for events



commit 8d89294ef629b575caae06b2d29659ac7f154255
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Wed Jun 25 15:16:30 2014 +0100

    drop-action: Use the right state for events
    
    The 'state' field should be used for pointer events without button
    information. Pointer events that have button information should use
    the 'button' field.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732143

 clutter/clutter-drop-action.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/clutter/clutter-drop-action.c b/clutter/clutter-drop-action.c
index a1a99fb..d1940dd 100644
--- a/clutter/clutter-drop-action.c
+++ b/clutter/clutter-drop-action.c
@@ -123,23 +123,25 @@ on_stage_capture (ClutterStage *stage,
   gfloat event_x, event_y;
   ClutterActor *actor, *drag_actor;
   ClutterDropAction *drop_action;
+  ClutterInputDevice *device;
   gboolean was_reactive;
 
   switch (clutter_event_type (event))
     {
     case CLUTTER_MOTION:
     case CLUTTER_BUTTON_RELEASE:
-      {
-        ClutterInputDevice *device;
+      if (clutter_event_type (event) == CLUTTER_MOTION &&
+          !(clutter_event_get_state (event) & CLUTTER_BUTTON1_MASK))
+        return CLUTTER_EVENT_PROPAGATE;
 
-        if (!(clutter_event_get_state (event) & CLUTTER_BUTTON1_MASK))
-          return CLUTTER_EVENT_PROPAGATE;
+      if (clutter_event_type (event) == CLUTTER_BUTTON_RELEASE &&
+          clutter_event_get_button (event) != CLUTTER_BUTTON_PRIMARY)
+        return CLUTTER_EVENT_PROPAGATE;
 
-        device = clutter_event_get_device (event);
-        drag_actor = _clutter_stage_get_pointer_drag_actor (stage, device);
-        if (drag_actor == NULL)
-          return CLUTTER_EVENT_PROPAGATE;
-      }
+      device = clutter_event_get_device (event);
+      drag_actor = _clutter_stage_get_pointer_drag_actor (stage, device);
+      if (drag_actor == NULL)
+        return CLUTTER_EVENT_PROPAGATE;
       break;
 
     case CLUTTER_TOUCH_UPDATE:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]