[Bf-blender-cvs] [3ff25fa80ac] blender-v2.81-release: Fix multi-object edit mode and local view/collections

Dalai Felinto noreply at git.blender.org
Wed Oct 16 17:32:32 CEST 2019


Commit: 3ff25fa80ac54cf32dec370e7a66873f5a8429e0
Author: Dalai Felinto
Date:   Tue Oct 15 00:10:35 2019 -0300
Branches: blender-v2.81-release
https://developer.blender.org/rB3ff25fa80ac54cf32dec370e7a66873f5a8429e0

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

===================================================================

M	source/blender/blenkernel/intern/layer.c

===================================================================

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;
     }



More information about the Bf-blender-cvs mailing list