Fix #5529. Escape now switches back from item mode to object mode.

This commit is contained in:
Dion Moult
2024-10-06 17:34:59 +11:00
parent 2e7e2d24e4
commit 864cc10b24
3 changed files with 22 additions and 0 deletions
+2
View File
@@ -296,6 +296,8 @@ def load_post(scene):
else:
bpy.ops.workspace.append_activate(idname="BIM", filepath=os.path.join(cwd, "data", "workspace.blend"))
bpy.ops.bim.override_escape("INVOKE_DEFAULT")
# To improve usability for new users, we hijack the scene properties
# tab. We override default scene properties panels with our own poll
# to hide them unless the user has chosen to view Blender properties.
@@ -44,6 +44,7 @@ classes = (
operator.OverrideDuplicateMoveLinked,
operator.OverrideDuplicateMoveLinkedMacro,
operator.OverrideDuplicateMoveMacro,
operator.OverrideEscape,
operator.OverrideJoin,
operator.OverrideMeshSeparate,
operator.OverrideModeSetEdit,
@@ -100,6 +101,7 @@ def register():
bpy.types.VIEW3D_MT_object_context_menu.append(ui.object_menu)
bpy.types.VIEW3D_MT_edit_mesh.append(ui.edit_mesh_menu)
bpy.types.VIEW3D_HT_header.append(ui.mode_menu)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.new(name="Object Mode", space_type="EMPTY")
@@ -1711,6 +1711,24 @@ class OverridePasteBuffer(bpy.types.Operator):
return {"FINISHED"}
class OverrideEscape(bpy.types.Operator):
bl_idname = "bim.override_escape"
bl_label = "Override Escape"
def execute(self, context):
self.report({"INFO"}, "Operator executed")
return {"FINISHED"}
def modal(self, context, event):
if event.type == "ESC" and context.scene.BIMGeometryProperties.mode == "ITEM":
tool.Geometry.disable_item_mode()
return {"PASS_THROUGH"}
def invoke(self, context, event):
context.window_manager.modal_handler_add(self)
return {"RUNNING_MODAL"}
class OverrideModeSetEdit(bpy.types.Operator, tool.Ifc.Operator):
bl_description = "Switch from Object to Item to Edit mode"
bl_idname = "bim.override_mode_set_edit"