[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27913] trunk/blender/source/blender: Fix [#21775] Double-clicking icons in the file browser doesn't open files

Matt Ebb matt at mke3.net
Thu Apr 1 03:27:29 CEST 2010


Revision: 27913
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27913
Author:   broken
Date:     2010-04-01 03:27:22 +0200 (Thu, 01 Apr 2010)

Log Message:
-----------
Fix [#21775] Double-clicking icons in the file browser doesn't open files

Complicated issue, but this should be correct, and testing goes fine. fingers crossed.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/windowmanager/intern/wm_dragdrop.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-04-01 01:15:23 UTC (rev 27912)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-04-01 01:27:22 UTC (rev 27913)
@@ -2073,10 +2073,13 @@
 		/* first handle click on icondrag type button */
 		if(event->type==LEFTMOUSE && but->dragpoin) {
 			if(ui_but_mouse_inside_icon(but, data->region, event)) {
+				
+				/* tell the button to wait and keep checking further events to
+				 * see if it should start dragging */
 				button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
 				data->dragstartx= event->x;
 				data->dragstarty= event->y;
-				return WM_UI_HANDLER_BREAK;
+				return WM_UI_HANDLER_CONTINUE;
 			}
 		}
 		
@@ -2092,14 +2095,16 @@
 			return WM_UI_HANDLER_BREAK;
 		}
 		
-		/* pass on release as press for other keymaps XXX hack alert! */
+		/* If the mouse has been pressed and released, getting to 
+		 * this point without triggering a drag, then clear the 
+		 * drag state for this button and continue to pass on the event */
 		if(event->type==LEFTMOUSE && event->val==KM_RELEASE) {
 			button_activate_state(C, but, BUTTON_STATE_EXIT);
-			event->val= KM_CLICK;
 			return WM_UI_HANDLER_CONTINUE;
 		}
 		
-		/* while wait drag, always block other events to get handled */
+		/* while waiting for a drag to be triggered, always block 
+		 * other events from getting handled */
 		return WM_UI_HANDLER_BREAK;
 	}
 	

Modified: trunk/blender/source/blender/windowmanager/intern/wm_dragdrop.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_dragdrop.c	2010-04-01 01:15:23 UTC (rev 27912)
+++ trunk/blender/source/blender/windowmanager/intern/wm_dragdrop.c	2010-04-01 01:27:22 UTC (rev 27913)
@@ -247,10 +247,10 @@
 {
 	int width= UI_GetStringWidth(name);
 	
-	glColor4ub(0, 0, 0, 128);
+	glColor4ub(0, 0, 0, 50);
 	
-	uiSetRoundBox(15);	
-	uiRoundBox(x, y, x + width + 8, y + 15, 7);
+	uiSetRoundBox(15+16);	
+	uiRoundBox(x, y, x + width + 8, y + 15, 4);
 	
 	glColor4ub(255, 255, 255, 255);
 	UI_DrawString(x+4, y+4, name);





More information about the Bf-blender-cvs mailing list