diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-16 06:16:21 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-16 06:35:37 +0300 |
commit | 3692a2bcb3b8f742551c791c6e484e01678a0835 (patch) | |
tree | d9953d66c88c504aaf7967da9ecadf1eea2d2d6d /source/blender/editors | |
parent | cca1e1b707c2d34244d3da87efcd78775c4eb048 (diff) | |
parent | e5327afcb73f102db8a82ccefc29bbf9cc6fb60c (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/io/io_alembic.c | 8 | ||||
-rw-r--r-- | source/blender/editors/render/render_internal.c | 22 |
2 files changed, 25 insertions, 5 deletions
diff --git a/source/blender/editors/io/io_alembic.c b/source/blender/editors/io/io_alembic.c index ca4ab30a08d..b584782e183 100644 --- a/source/blender/editors/io/io_alembic.c +++ b/source/blender/editors/io/io_alembic.c @@ -59,6 +59,8 @@ #include "RNA_define.h" #include "RNA_enum_types.h" +#include "ED_object.h" + #include "UI_interface.h" #include "UI_resources.h" @@ -543,6 +545,12 @@ static int wm_alembic_import_exec(bContext *C, wmOperator *op) } } + /* Switch out of edit mode to avoid being stuck in it (T54326). */ + Object *obedit = CTX_data_edit_object(C); + if (obedit) { + ED_object_mode_toggle(C, OB_MODE_EDIT); + } + bool ok = ABC_import(C, filename, scale, is_sequence, set_frame_range, sequence_len, offset, validate_meshes, as_background_job); diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index aba4b7788f8..33ca6ea7495 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -536,10 +536,8 @@ static void render_image_update_pass_and_layer(RenderJob *rj, RenderResult *rr, int layer = BLI_findstringindex(&main_rr->layers, (char *)rr->renlay->name, offsetof(RenderLayer, name)); - if (layer != rj->last_layer) { - sima->iuser.layer = layer; - rj->last_layer = layer; - } + sima->iuser.layer = layer; + rj->last_layer = layer; } iuser->pass = sima->iuser.pass; @@ -637,7 +635,21 @@ static void render_image_restore_layer(RenderJob *rj) if (sa == rj->sa) { if (sa->spacetype == SPACE_IMAGE) { SpaceImage *sima = sa->spacedata.first; - sima->iuser.layer = rj->orig_layer; + + if (RE_HasSingleLayer(rj->re)) { + /* For single layer renders keep the active layer + * visible, or show the compositing result. */ + RenderResult *rr = RE_AcquireResultRead(rj->re); + if(RE_HasCombinedLayer(rr)) { + sima->iuser.layer = 0; + } + RE_ReleaseResult(rj->re); + } + else { + /* For multiple layer render, set back the layer + * that was set at the start of rendering. */ + sima->iuser.layer = rj->orig_layer; + } } return; } |