[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21941] branches/blender2.5/blender/source /blender/windowmanager/intern/wm_event_system.c: 2.5 / Drag & Drop

Elia Sarti vekoon at gmail.com
Mon Jul 27 20:26:48 CEST 2009


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;





More information about the Bf-blender-cvs mailing list