Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Inch <mythologylover75@gmail.com>2020-09-26 10:40:03 +0300
committerRyan Inch <mythologylover75@gmail.com>2020-09-26 10:40:03 +0300
commit975f81d2bc5b446b144f0ecd8ed5be06b111073f (patch)
tree1aef0d2e2e8ab20afbe9c7363403e2c316cc8efc /object_collection_manager
parentbf176041da95d4b07d74727acb78f7cf6a46785e (diff)
Collection Manager: Fix active object bug. Task: T69577
Fixes losing the active object sometimes when performing actions with the exclude checkbox.
Diffstat (limited to 'object_collection_manager')
-rw-r--r--object_collection_manager/__init__.py2
-rw-r--r--object_collection_manager/operators.py16
2 files changed, 15 insertions, 3 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index 792f5d1c..49ec349f 100644
--- a/object_collection_manager/__init__.py
+++ b/object_collection_manager/__init__.py
@@ -22,7 +22,7 @@ bl_info = {
"name": "Collection Manager",
"description": "Manage collections and their objects",
"author": "Ryan Inch",
- "version": (2, 15, 0),
+ "version": (2, 15, 1),
"blender": (2, 80, 0),
"location": "View3D - Object Mode (Shortcut - M)",
"warning": '', # used for warning icon and text in addons panel
diff --git a/object_collection_manager/operators.py b/object_collection_manager/operators.py
index b18fc44a..e2412419 100644
--- a/object_collection_manager/operators.py
+++ b/object_collection_manager/operators.py
@@ -399,6 +399,7 @@ class CMExcludeOperator(Operator):
modifiers = get_modifiers(event)
view_layer = context.view_layer.name
orig_active_collection = context.view_layer.active_layer_collection
+ orig_active_object = context.view_layer.objects.active
laycol_ptr = layer_collections[self.name]["ptr"]
if not view_layer in rto_history["exclude"]:
@@ -429,9 +430,14 @@ class CMExcludeOperator(Operator):
cls.isolated = False
- # reset active collection
+ # restore active collection
context.view_layer.active_layer_collection = orig_active_collection
+ # restore active object if possible
+ if orig_active_object:
+ if orig_active_object.name in context.view_layer.objects:
+ context.view_layer.objects.active = orig_active_object
+
# reset exclude all history
if view_layer in rto_history["exclude_all"]:
del rto_history["exclude_all"][view_layer]
@@ -455,6 +461,7 @@ class CMUnExcludeAllOperator(Operator):
global rto_history
orig_active_collection = context.view_layer.active_layer_collection
+ orig_active_object = context.view_layer.objects.active
view_layer = context.view_layer.name
modifiers = get_modifiers(event)
@@ -479,9 +486,14 @@ class CMUnExcludeAllOperator(Operator):
else:
activate_all_rtos(view_layer, "exclude")
- # reset active collection
+ # restore active collection
context.view_layer.active_layer_collection = orig_active_collection
+ # restore active object if possible
+ if orig_active_object:
+ if orig_active_object.name in context.view_layer.objects:
+ context.view_layer.objects.active = orig_active_object
+
return {'FINISHED'}