[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36356] trunk/blender/source/blender/ blenloader/intern/readfile.c: fix for fix, was incorrectly looping over regions.

Campbell Barton ideasman42 at gmail.com
Wed Apr 27 16:53:46 CEST 2011


Revision: 36356
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36356
Author:   campbellbarton
Date:     2011-04-27 14:53:45 +0000 (Wed, 27 Apr 2011)
Log Message:
-----------
fix for fix, was incorrectly looping over regions.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2011-04-27 14:36:02 UTC (rev 36355)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2011-04-27 14:53:45 UTC (rev 36356)
@@ -11591,26 +11591,31 @@
 	/* put compatibility code here until next subversion bump */
 
 	{
-		ARegion *ar;
-		/* screen view2d settings were not properly initialized [#27164] */
+		/* screen view2d settings were not properly initialized [#27164]
+		 * v2d->scroll caused the bug but best reset other values too which are in old blend files only.
+		 * need to make less ugly - possibly an iterator? */
 		bScreen *screen;
 		for(screen= main->screen.first; screen; screen= screen->id.next) {
 			ScrArea *sa;
 			/* add regions */
 			for(sa= screen->areabase.first; sa; sa= sa->next) {
-				SpaceLink *sl;
+				SpaceLink *sl= sa->spacedata.first;
+				if(sl->spacetype==SPACE_IMAGE) {
+					ARegion *ar;
+					for (ar=sa->regionbase.first; ar; ar= ar->next) {
+						if(ar->regiontype == RGN_TYPE_WINDOW) {
+							View2D *v2d= &ar->v2d;
+							v2d->minzoom= v2d->maxzoom= v2d->scroll= v2d->keeptot= v2d->keepzoom= v2d->keepofs= v2d->align= 0;
+						}
+					}
+				}
 				for (sl= sa->spacedata.first; sl; sl= sl->next) {
 					if(sl->spacetype==SPACE_IMAGE) {
-						for (ar=sa->regionbase.first; ar; ar= ar->next) {
+						ARegion *ar;
+						for (ar=sl->regionbase.first; ar; ar= ar->next) {
 							if(ar->regiontype == RGN_TYPE_WINDOW) {
 								View2D *v2d= &ar->v2d;
-								v2d->minzoom= 0;
-								v2d->maxzoom= 0;
-								v2d->scroll= 0; /* cause of bug, but set others just incase */
-								v2d->keeptot= 0;
-								v2d->keepzoom= 0;
-								v2d->keepofs= 0;
-								v2d->align= 0;
+								v2d->minzoom= v2d->maxzoom= v2d->scroll= v2d->keeptot= v2d->keepzoom= v2d->keepofs= v2d->align= 0;
 							}
 						}
 					}




More information about the Bf-blender-cvs mailing list