[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