[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