[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34404] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: Bugfix #25613
Ton Roosendaal
ton at blender.org
Wed Jan 19 19:07:13 CET 2011
Revision: 34404
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34404
Author: ton
Date: 2011-01-19 18:07:13 +0000 (Wed, 19 Jan 2011)
Log Message:
-----------
Bugfix #25613
Dropping file in Blender from pre 2.5 period caused eternal loop
loading .blend files :)
Modified Paths:
--------------
trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-01-19 17:11:02 UTC (rev 34403)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-01-19 18:07:13 UTC (rev 34404)
@@ -1470,21 +1470,26 @@
if(event->custom==EVT_DATA_LISTBASE) {
ListBase *lb= (ListBase *)event->customdata;
wmDrag *drag;
+
for(drag= lb->first; drag; drag= drag->next) {
if(drop->poll(C, drag, event)) {
+
drop->copy(drag, drop);
+ /* free the drags before calling operator */
+ BLI_freelistN(event->customdata);
+ event->customdata= NULL;
+ event->custom= 0;
+
WM_operator_name_call(C, drop->ot->idname, drop->opcontext, drop->ptr);
- //wm_operator_invoke(C, drop->ot, event, drop->ptr, NULL, FALSE);
action |= WM_HANDLER_BREAK;
/* XXX fileread case */
if(CTX_wm_window(C)==NULL)
return action;
- BLI_freelistN(event->customdata);
- event->customdata= NULL;
- event->custom= 0;
+ /* escape from drag loop, got freed */
+ break;
}
}
}
More information about the Bf-blender-cvs
mailing list