[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56006] trunk/blender/source: Bug fix #34896

Ton Roosendaal ton at blender.org
Sat Apr 13 14:03:22 CEST 2013


Revision: 56006
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56006
Author:   ton
Date:     2013-04-13 12:03:20 +0000 (Sat, 13 Apr 2013)
Log Message:
-----------
Bug fix #34896

The feature "Keep Session" was also loading that session when you double-click
on a .blend to open it, or when a .blend file was on commandline.

Moved this feature to the main() in creator.c, so it can check on it properly, skipping the
kept session when a file was loaded.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/blender/windowmanager/wm_event_system.h
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h	2013-04-13 09:32:27 UTC (rev 56005)
+++ trunk/blender/source/blender/windowmanager/WM_api.h	2013-04-13 12:03:20 UTC (rev 56006)
@@ -113,6 +113,7 @@
 			/* files */
 void		WM_file_read(struct bContext *C, const char *filepath, struct ReportList *reports);
 void		WM_autosave_init(struct wmWindowManager *wm);
+void		WM_recover_last_session(struct bContext *C, struct ReportList *reports);
 
 			/* mouse cursors */
 void		WM_cursor_set		(struct wmWindow *win, int curs);

Modified: trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2013-04-13 09:32:27 UTC (rev 56005)
+++ trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2013-04-13 12:03:20 UTC (rev 56006)
@@ -223,7 +223,8 @@
 	
 	/* load last session, uses regular file reading so it has to be in end (after init py etc) */
 	if (U.uiflag2 & USER_KEEP_SESSION) {
-		wm_recover_last_session(C, NULL);
+		/* calling WM_recover_last_session(C, NULL) has been moved to creator.c */
+		/* that prevents loading both the kept session, and the file on the command line */
 	}
 	else {
 		/* normally 'wm_homefile_read' will do this,

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2013-04-13 09:32:27 UTC (rev 56005)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2013-04-13 12:03:20 UTC (rev 56006)
@@ -2237,7 +2237,7 @@
 
 /* *************** recover last session **************** */
 
-void wm_recover_last_session(bContext *C, ReportList *reports)
+void WM_recover_last_session(bContext *C, ReportList *reports)
 {
 	char filename[FILE_MAX];
 	
@@ -2268,7 +2268,7 @@
 
 static int wm_recover_last_session_exec(bContext *C, wmOperator *op)
 {
-	wm_recover_last_session(C, op->reports);
+	WM_recover_last_session(C, op->reports);
 	return OPERATOR_FINISHED;
 }
 

Modified: trunk/blender/source/blender/windowmanager/wm_event_system.h
===================================================================
--- trunk/blender/source/blender/windowmanager/wm_event_system.h	2013-04-13 09:32:27 UTC (rev 56005)
+++ trunk/blender/source/blender/windowmanager/wm_event_system.h	2013-04-13 12:03:20 UTC (rev 56006)
@@ -104,8 +104,5 @@
 void        wm_drags_check_ops(bContext *C, wmEvent *event);
 void        wm_drags_draw(bContext *C, wmWindow *win, rcti *rect);
 
-/* wm_operators.c */
-void		wm_recover_last_session(bContext *C, ReportList *reports);
-
 #endif /* __WM_EVENT_SYSTEM_H__ */
 

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2013-04-13 09:32:27 UTC (rev 56005)
+++ trunk/blender/source/creator/creator.c	2013-04-13 12:03:20 UTC (rev 56006)
@@ -1196,6 +1196,11 @@
 	}
 }
 
+static int test_file(int UNUSED(argc), const char **argv, void *data)
+{
+	printf("path is %s\n", argv[0]);
+}
+
 static int load_file(int UNUSED(argc), const char **argv, void *data)
 {
 	bContext *C = data;
@@ -1604,6 +1609,13 @@
 	/* OK we are ready for it */
 #ifndef WITH_PYTHON_MODULE
 	BLI_argsParse(ba, 4, load_file, C);
+	
+	if (G.background == 0) {
+		if (!G.file_loaded)
+			if (U.uiflag2 & USER_KEEP_SESSION)
+				WM_recover_last_session(C, NULL);
+	}
+
 #endif
 
 #ifndef WITH_PYTHON_MODULE




More information about the Bf-blender-cvs mailing list