diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-27 14:54:38 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-27 14:54:38 +0300 |
commit | 998ca039891d600ec7e85912cece0f38eb69ab72 (patch) | |
tree | 9ef1f2f1cabaf5304034699f777c6390483e8b58 /source/blender | |
parent | 3d5954604d3b09c483c53bdb19f68f0f3e5bc36e (diff) |
Fix #21741: changing scenes didn't update layers in 3d view, patch by Elia Sarti.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/include/ED_view3d.h | 1 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 6 |
3 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 842b66a1f6f..7f90575acc0 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -153,6 +153,7 @@ struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C); void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d); +void ED_view3d_scene_layers_copy(struct View3D *v3d, struct Scene *scene); void ED_view3d_scene_layers_update(struct Main *bmain, struct Scene *scene); int ED_view3d_scene_layer_set(int lay, const int *values); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 4ec63c3c481..435201f506e 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -49,6 +49,7 @@ #include "WM_types.h" #include "ED_image.h" +#include "ED_view3d.h" #include "ED_screen.h" #include "ED_screen_types.h" @@ -1387,6 +1388,9 @@ void ED_screen_set_scene(bContext *C, Scene *scene) while(sl) { if(sl->spacetype==SPACE_VIEW3D) { View3D *v3d= (View3D*) sl; + + ED_view3d_scene_layers_copy(v3d, scene); + if (!v3d->camera || !object_in_scene(v3d->camera, scene)) { v3d->camera= scene_find_camera(sc->scene); // XXX if (sc==curscreen) handle_view3d_lock(); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 798a6949433..543af197370 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -66,6 +66,7 @@ #include "ED_screen.h" #include "ED_armature.h" +#include "GPU_draw.h" #include "PIL_time.h" /* smoothview */ @@ -1415,6 +1416,11 @@ static void copy_view3d_lock_space(View3D *v3d, Scene *scene) } } +void ED_view3d_scene_layers_copy(struct View3D *v3d, struct Scene *scene) +{ + copy_view3d_lock_space(v3d, scene); +} + void ED_view3d_scene_layers_update(Main *bmain, Scene *scene) { bScreen *sc; |