diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2019-10-15 06:10:35 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2019-10-16 18:31:27 +0300 |
commit | 3ff25fa80ac54cf32dec370e7a66873f5a8429e0 (patch) | |
tree | 6357d17d491b58cbe1c4ff74231958063c109f94 /source/blender/blenkernel/intern/layer.c | |
parent | b0476f06312db95423e6b83a86d7675dbbc94431 (diff) |
Fix multi-object edit mode and local view/collections
Before this patch you could go to a local view with a single object,
while you had other objects also in edit mode, and your operators would
affect all objects even the ones outside your local view (same for local
collection).
Differential Revision: https://developer.blender.org/D6064
Diffstat (limited to 'source/blender/blenkernel/intern/layer.c')
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index fd5b4b6e506..f12999b033d 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1638,7 +1638,7 @@ void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_ data->object_type = base->object->type; } - if (!base_is_in_mode(data, base)) { + if (!(base_is_in_mode(data, base) && BKE_base_is_visible(data->v3d, base))) { BKE_view_layer_bases_in_mode_iterator_next(iter); } } @@ -1651,7 +1651,7 @@ void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter) if (base == data->base_active) { /* first step */ base = data->view_layer->object_bases.first; - if (base == data->base_active) { + if ((base == data->base_active) && BKE_base_is_visible(data->v3d, base)) { base = base->next; } } @@ -1660,7 +1660,8 @@ void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter) } while (base) { - if ((base != data->base_active) && base_is_in_mode(data, base)) { + if ((base != data->base_active) && base_is_in_mode(data, base) && + BKE_base_is_visible(data->v3d, base)) { iter->current = base; return; } |