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
This commit is contained in:
parent
b0476f0631
commit
3ff25fa80a
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user