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@gmail.com>2019-03-08 14:11:42 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-03-08 14:11:42 +0300
commit49b9b159e4a4baaf48b121edf66d3436873dfc48 (patch)
tree58bb2669f7a5d5b776c94abcea3cedaadeb7750d /source/blender/editors/space_view3d
parentcf09a2443cef60cda28c2c2023cb84728e644081 (diff)
Fix T62317: missing Cycles viewport update when changing active camera.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 638efab4598..005e78fbc1a 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -3899,8 +3899,10 @@ static int view_camera_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* important these don't get out of sync for locked scenes */
- if (v3d->scenelock)
+ if (v3d->scenelock && scene->camera != v3d->camera) {
scene->camera = v3d->camera;
+ DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
+ }
/* finally do snazzy view zooming */
rv3d->persp = RV3D_CAMOB;
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index b6defa1ad62..e3876abd489 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -639,8 +639,10 @@ static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op)
Object *camera_old = (rv3d->persp == RV3D_CAMOB) ? V3D_CAMERA_SCENE(scene, v3d) : NULL;
rv3d->persp = RV3D_CAMOB;
v3d->camera = ob;
- if (v3d->scenelock)
+ if (v3d->scenelock && scene->camera != ob) {
scene->camera = ob;
+ DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
+ }
/* unlikely but looks like a glitch when set to the same */
if (camera_old != ob) {