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
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-03-27 14:54:38 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-03-27 14:54:38 +0300
commit998ca039891d600ec7e85912cece0f38eb69ab72 (patch)
tree9ef1f2f1cabaf5304034699f777c6390483e8b58 /source/blender
parent3d5954604d3b09c483c53bdb19f68f0f3e5bc36e (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.h1
-rw-r--r--source/blender/editors/screen/screen_edit.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c6
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;