Revision: 21941
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21941
Author:   vekoon
Date:     2009-07-27 20:26:48 +0200 (Mon, 27 Jul 2009)

Log Message:
-----------
2.5 / Drag & Drop
Small tweak for MOUSEDRAG/DROP event generation

Modified Paths:
--------------
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
   2009-07-27 18:17:21 UTC (rev 21940)
+++ 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
   2009-07-27 18:26:48 UTC (rev 21941)
@@ -1441,13 +1441,17 @@
                                cx = abs((win->downx - event.x));
                                cy = abs((win->downy - event.y));
 
-                               /* probably minimum drag size should be 
#defined instead of hardcoded 3 */
-                               if (win->downstate == LEFTMOUSE && (cx > 3 || 
cy > 3)) {
+                               /* probably minimum drag size should be 
#defined instead of hardcoded 3
+                                * also, cy seems always to be 6 pixels off, 
not sure why
+                                */
+                               if ((win->downstate == LEFTMOUSE || 
win->downstate == MOUSEDRAG) && (cx > 3 || cy > 9)) {
                                        wmEvent dragevt= *evt;
                                        dragevt.type= MOUSEDRAG;
                                        dragevt.customdata= NULL;
                                        dragevt.customdatafree= 0;
 
+                                       win->downstate= MOUSEDRAG;
+
                                        wm_event_add(win, &dragevt);
                                }
                        }
@@ -1479,16 +1483,21 @@
                                win->downx= event.x;
                                win->downy= event.y;
                        }
-                       else if (win->downstate) {
-                               wmEvent dropevt= *evt;
-                               dropevt.type= MOUSEDROP;
-                               dropevt.customdata= NULL;
-                               dropevt.customdatafree= 0;
+                       else {
+                               short downstate= win->downstate;
+
                                win->downstate= 0;
                                win->downx= 0;
                                win->downy= 0;
 
-                               wm_event_add(win, &dropevt);
+                               if (downstate == MOUSEDRAG) {
+                                       wmEvent dropevt= *evt;
+                                       dropevt.type= MOUSEDROP;
+                                       dropevt.customdata= NULL;
+                                       dropevt.customdatafree= 0;
+
+                                       wm_event_add(win, &dropevt);
+                               }
                        }
                        
                        break;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to