[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18370] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Tue Jan 6 18:38:45 CET 2009


Revision: 18370
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18370
Author:   ton
Date:     2009-01-06 18:38:44 +0100 (Tue, 06 Jan 2009)

Log Message:
-----------
2.5

File window: load now happens with proper free of operator.
still a bit of mystery how main handler loop survives after
a file load... will investigate once. :)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c
    branches/blender2.5/blender/source/blender/editors/space_file/space_file.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c	2009-01-06 16:47:01 UTC (rev 18369)
+++ branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c	2009-01-06 17:38:44 UTC (rev 18370)
@@ -98,14 +98,22 @@
 				char name[FILE_MAX];
 
 				area_prevspace(C);
-				BLI_strncpy(name, sfile->params->dir, sizeof(name));
-				strcat(name, sfile->params->file);
-				RNA_string_set(sfile->op->ptr, "filename", name);
-				sfile->op->type->exec(C, sfile->op);
-				/* XXX for Ton: the call to WM_operator_free crashes
-				   WM_operator_free(sfile->op);
-				   sfile->op = NULL;
-				*/
+				if(sfile->op) {
+					wmOperator *op= sfile->op;
+					
+					/* if load .blend, all UI pointers after exec are invalid! */
+					/* but, operator can be freed still */
+					
+					sfile->op = NULL;
+					BLI_strncpy(name, sfile->params->dir, sizeof(name));
+					strcat(name, sfile->params->file);
+					RNA_string_set(op->ptr, "filename", name);
+				
+					op->type->exec(C, op);
+				
+					WM_operator_free(op);
+				}
+
 			}
 			break;
 		case B_FS_CANCEL:

Modified: branches/blender2.5/blender/source/blender/editors/space_file/space_file.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/space_file.c	2009-01-06 16:47:01 UTC (rev 18369)
+++ branches/blender2.5/blender/source/blender/editors/space_file/space_file.c	2009-01-06 17:38:44 UTC (rev 18370)
@@ -173,7 +173,7 @@
 static void file_main_area_draw(const bContext *C, ARegion *ar)
 {
 	/* draw entirely, view changes should be handled here */
-	SpaceFile *sfile= (SpaceFile*)CTX_wm_space_data(C);
+//	SpaceFile *sfile= (SpaceFile*)CTX_wm_space_data(C);
 	FileSelectParams* params = ED_fileselect_get_params(C);
 	View2D *v2d= &ar->v2d;
 	View2DScrollers *scrollers;
@@ -322,10 +322,10 @@
 	UI_view2d_view_restore(C);
 }
 
-static void file_main_area_listener(ARegion *ar, wmNotifier *wmn)
-{
+//static void file_main_area_listener(ARegion *ar, wmNotifier *wmn)
+//{
 	/* context changes */
-}
+//}
 
 /* only called once, from space/spacetypes.c */
 void ED_spacetype_file(void)

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c	2009-01-06 16:47:01 UTC (rev 18369)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c	2009-01-06 17:38:44 UTC (rev 18370)
@@ -402,7 +402,7 @@
 	ot->exec= wm_mainfile_exec;
 	ot->poll= WM_operator_winactive;
 	
-	ot->flag= OPTYPE_REGISTER;
+	ot->flag= 0;
 	
 	RNA_def_property(ot->srna, "filename", PROP_STRING, PROP_FILEPATH);
 





More information about the Bf-blender-cvs mailing list