diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-04-30 11:40:15 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-04-30 11:40:15 +0400 |
commit | f01986c97c9b5f3fce9e11dadc1e89f8266732f3 (patch) | |
tree | ae3ea894cd0a91e12509897cac9156997dfc3eb7 /source/blender/blenloader | |
parent | 39ac11a3026c8bbdb90f48fc3b1a92d2808eb789 (diff) |
Fix for #35147, view in backdrop and image editor in compositor don't work anymore. The active_viewer_key which sets the active node tree to use for the viewer image was not initialized in do_versions yet.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a2e97e8063c..78fcc22ea66 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -9396,6 +9396,41 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } + { + /* Initialize the active_viewer_key for compositing */ + bScreen *screen; + Scene *scene; + bNodeInstanceKey active_viewer_key = {0}; + /* simply pick the first node space and use that for the active viewer key */ + for (screen = main->screen.first; screen; screen = screen->id.next) { + ScrArea *sa; + for (sa = screen->areabase.first; sa; sa = sa->next) { + SpaceLink *sl; + for (sl = sa->spacedata.first; sl; sl= sl->next) { + if (sl->spacetype == SPACE_NODE) { + SpaceNode *snode = (SpaceNode *)sl; + bNodeTreePath *path = snode->treepath.last; + if (!path) + continue; + + active_viewer_key = path->parent_key; + break; + } + } + if (active_viewer_key.value != 0) + break; + } + if (active_viewer_key.value != 0) + break; + } + + for (scene = main->scene.first; scene; scene = scene->id.next) { + /* NB: scene->nodetree is a local ID block, has been direct_link'ed */ + if (scene->nodetree) + scene->nodetree->active_viewer_key = active_viewer_key; + } + } + /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init see do_versions_userdef() above! */ |