Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-04-27 18:53:45 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-04-27 18:53:45 +0400
commit9e6cdf54a3874f97fdfaecb1ef19a7e85451f762 (patch)
tree74a079e35b9716955d943e9880841da5a5d9af08 /source
parent2a7e70ba15ee8735d54293ab71d5c01b7db336a2 (diff)
fix for fix, was incorrectly looping over regions.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenloader/intern/readfile.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index f669b178252..73de7e4c676 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -11591,26 +11591,31 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* 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;
}
}
}