From 3c0103b4da9d8f1626e08cdbccf4a11787082af6 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 8 Aug 2024 12:50:41 +0500 Subject: [PATCH] fix issues toggling EDIT mode 1) it was throwing errors if object was linked 2) bim.override_mode_set_edit wasn't considering that toggle_edit_mode might not work out and was changing BIMGeometryProperties.mode though it wasn't needed. --- src/blenderbim/blenderbim/bim/module/geometry/operator.py | 3 ++- src/blenderbim/blenderbim/tool/blender.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index eed9895c42..1dea41b3e7 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -1669,7 +1669,8 @@ class OverrideModeSetEdit(bpy.types.Operator): # The active object is non-mesh-like. Set a valid object (or None) as active context.view_layer.objects.active = context.selected_objects[0] if context.selected_objects else None if context.active_object: - tool.Blender.toggle_edit_mode(context) + if tool.Blender.toggle_edit_mode(context) == {"CANCELLED"}: + return {"CANCELLED"} context.scene.BIMGeometryProperties.is_changing_mode = True if context.scene.BIMGeometryProperties.mode != "EDIT": context.scene.BIMGeometryProperties.mode = "EDIT" diff --git a/src/blenderbim/blenderbim/tool/blender.py b/src/blenderbim/blenderbim/tool/blender.py index c762e7c1b8..ef7ba5287d 100644 --- a/src/blenderbim/blenderbim/tool/blender.py +++ b/src/blenderbim/blenderbim/tool/blender.py @@ -694,6 +694,8 @@ class Blender(blenderbim.core.tool.Blender): ao = context.active_object if not ao: return {"CANCELLED"} + if ao.library: + return {"CANCELLED"} if ao.type in cls.OBJECT_TYPES_THAT_SUPPORT_EDIT_MODE: return bpy.ops.object.mode_set(mode="EDIT", toggle=True) elif ao.type in cls.OBJECT_TYPES_THAT_SUPPORT_EDIT_GPENCIL_MODE: