[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30660] trunk/blender/source/blender/ windowmanager/intern/wm_files.c: Fix #20863: when loading a file without UI , with multiple windows open,

Brecht Van Lommel brecht at blender.org
Fri Jul 23 18:50:26 CEST 2010


Revision: 30660
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30660
Author:   blendix
Date:     2010-07-23 18:50:25 +0200 (Fri, 23 Jul 2010)

Log Message:
-----------
Fix #20863: when loading a file without UI, with multiple windows open,
the other windows would not preserve the screens correctly, code for
reading 2.4x files was running when it didn't need to.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_files.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2010-07-23 16:48:45 UTC (rev 30659)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2010-07-23 16:50:25 UTC (rev 30660)
@@ -179,21 +179,23 @@
 		
 		/* we've read file without wm..., keep current one entirely alive */
 		if(G.main->wm.first==NULL) {
-			bScreen *screen= CTX_wm_screen(C);
-			
-			/* match oldwm to new dbase, only old files */
-			
-			for(wm= oldwmlist->first; wm; wm= wm->id.next) {
-				
-				for(win= wm->windows.first; win; win= win->next) {
-					/* all windows get active screen from file */
-					if(screen->winid==0)
-						win->screen= screen;
-					else 
-						win->screen= ED_screen_duplicate(win, screen);
+			/* when loading without UI, no matching needed */
+			if(!(G.fileflags & G_FILE_NO_UI)) {
+				bScreen *screen= CTX_wm_screen(C);
+
+				/* match oldwm to new dbase, only old files */
+				for(wm= oldwmlist->first; wm; wm= wm->id.next) {
 					
-					BLI_strncpy(win->screenname, win->screen->id.name+2, 21);
-					win->screen->winid= win->winid;
+					for(win= wm->windows.first; win; win= win->next) {
+						/* all windows get active screen from file */
+						if(screen->winid==0)
+							win->screen= screen;
+						else 
+							win->screen= ED_screen_duplicate(win, screen);
+						
+						BLI_strncpy(win->screenname, win->screen->id.name+2, 21);
+						win->screen->winid= win->winid;
+					}
 				}
 			}
 			





More information about the Bf-blender-cvs mailing list