From c25bb03a9c07f1bfd286085150d45eb1e6ae5817 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 19 Jul 2024 14:23:02 +0500 Subject: [PATCH] Blenderbim startup error handler - switch to scene properties Noticed that by default Blender is using object properties (and users may have something else their startup file), so no we switch to the scene properties so they could see our error handler immediately. --- src/blenderbim/blenderbim/__init__.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/blenderbim/blenderbim/__init__.py b/src/blenderbim/blenderbim/__init__.py index dcdb589806..37e778d398 100644 --- a/src/blenderbim/blenderbim/__init__.py +++ b/src/blenderbim/blenderbim/__init__.py @@ -164,6 +164,21 @@ if IN_BLENDER: blenderbim.bim.unregister() except: + + def show_scene_properties() -> None: + # By default in Blender object properties are selected. + # Or user may have some other properties selected in their startup file. + # Select scene properties to ensure user will see our error handler. + for area in bpy.context.screen.areas: + if area.type != "PROPERTIES": + continue + space = area.spaces.active + assert isinstance(space, bpy.types.SpaceProperties) + space.context = "SCENE" + + # Use a timer as we're not allowed to make changes to data during register(). + bpy.app.timers.register(show_scene_properties, first_interval=0.1) + last_error = traceback.format_exc() print(last_error)