[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12365] trunk/blender/source: bug fix, when opening blender with a file ( by double clicking or from the command line) - the initial undo state would be set to the default scene.

Campbell Barton cbarton at metavr.com
Tue Oct 23 23:32:01 CEST 2007


Revision: 12365
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12365
Author:   campbellbarton
Date:     2007-10-23 23:31:59 +0200 (Tue, 23 Oct 2007)

Log Message:
-----------
bug fix, when opening blender with a file (by double clicking or from the command line) - the initial undo state would be set to the default scene.
So holding Ctrl+Z would go back to the default .B.blend rather then the file that the user opened.

Modified Paths:
--------------
    trunk/blender/source/blender/include/BIF_usiblender.h
    trunk/blender/source/blender/python/api2_2x/Blender.c
    trunk/blender/source/blender/src/header_info.c
    trunk/blender/source/blender/src/toets.c
    trunk/blender/source/blender/src/usiblender.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/include/BIF_usiblender.h
===================================================================
--- trunk/blender/source/blender/include/BIF_usiblender.h	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/blender/include/BIF_usiblender.h	2007-10-23 21:31:59 UTC (rev 12365)
@@ -43,7 +43,7 @@
 void BIF_init(void);
 
 void BIF_read_file(char *name);
-int BIF_read_homefile(int from_memory);
+int BIF_read_homefile(int from_memory, int do_undo);
 void BIF_read_autosavefile(void);
 
 void BIF_write_file(char *target);

Modified: trunk/blender/source/blender/python/api2_2x/Blender.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Blender.c	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/blender/python/api2_2x/Blender.c	2007-10-23 21:31:59 UTC (rev 12365)
@@ -637,7 +637,7 @@
 		 * enough here.  Note: the default file requires extra clean-up done by
 		 * BIF_read_homefile: freeing the user theme data. */
 		if( !fname || ( strstr( fname, ".B.blend" ) && is_blend_file ) )
-			BIF_read_homefile(0);
+			BIF_read_homefile(0, 1);
 		else
 			BIF_read_file( fname );
 

Modified: trunk/blender/source/blender/src/header_info.c
===================================================================
--- trunk/blender/source/blender/src/header_info.c	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/blender/src/header_info.c	2007-10-23 21:31:59 UTC (rev 12365)
@@ -812,7 +812,7 @@
 	switch(event) {
 	case 0:
 		if (okee("Erase All")) {
-			if (!BIF_read_homefile(0))
+			if (!BIF_read_homefile(0, 1))
 				error("No file ~/.B.blend");
 		}
 		break;
@@ -896,7 +896,7 @@
 		break;
 	case 32:
 		if (okee("Erase All")) {
-			if (!BIF_read_homefile(1))
+			if (!BIF_read_homefile(1, 1))
 				error("Can't read data from memory!");
 		}
 		break;

Modified: trunk/blender/source/blender/src/toets.c
===================================================================
--- trunk/blender/source/blender/src/toets.c	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/blender/src/toets.c	2007-10-23 21:31:59 UTC (rev 12365)
@@ -942,7 +942,7 @@
 		if(textspace==0 && textediting==0) {
 			if(G.qual==LR_CTRLKEY) {
 				if(okee("Erase all")) {
-					if( BIF_read_homefile(0)==0) error("No file ~/.B.blend");
+					if( BIF_read_homefile(0, 1)==0) error("No file ~/.B.blend");
 				}
 				return 0;
 			}

Modified: trunk/blender/source/blender/src/usiblender.c
===================================================================
--- trunk/blender/source/blender/src/usiblender.c	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/blender/src/usiblender.c	2007-10-23 21:31:59 UTC (rev 12365)
@@ -483,7 +483,7 @@
 }
 
 /* only here settings for fullscreen */
-int BIF_read_homefile(int from_memory)
+int BIF_read_homefile(int from_memory, int do_undo)
 {
 	char tstr[FILE_MAXDIR+FILE_MAXFILE], scestr[FILE_MAXDIR];
 	char *home= BLI_gethome();
@@ -526,8 +526,10 @@
 
 	undo_editmode_clear();
 	BKE_reset_undo();
-	BKE_write_undo("original");	/* save current state */
 	
+	if (do_undo)
+		BIF_undo_push("original");
+	
 	return success;
 }
 
@@ -896,7 +898,11 @@
 	init_node_butfuncs();
 	
 	BIF_preview_init_dbase();
-	BIF_read_homefile(0);
+	
+	/* dont set an undo here because this sets the default scene to be the initial
+	undo state when loading blender with a file  a new file, so holding Ctrl+Z will undo to the default
+	scene rather then to the new file */
+	BIF_read_homefile(0, 0);
 
 	BIF_resources_init();	/* after homefile, to dynamically load an icon file based on theme settings */
 	

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2007-10-23 19:57:41 UTC (rev 12364)
+++ trunk/blender/source/creator/creator.c	2007-10-23 21:31:59 UTC (rev 12365)
@@ -702,9 +702,10 @@
 		sce= add_scene("1");
 		set_scene(sce);
 	}
-
+	
+	BKE_write_undo("original");	/* save current state */
 	screenmain();
-
+	
 	return 0;
 } /* end of int main(argc,argv)	*/
 





More information about the Bf-blender-cvs mailing list