diff --git a/addon/__init__.py b/addon/__init__.py index 8d21cbf..dddccb6 100644 --- a/addon/__init__.py +++ b/addon/__init__.py @@ -51,11 +51,21 @@ classes = [ TOPBAR_HT_upper_bar ] - +last_scene = None @persistent def on_scene(scene): + global last_scene + last_scene = bpy.context.scene.name if not has_data(): select_all() +@persistent +def on_frame(scene): + # Avoid simple playback or frame change (only scene change) + global last_scene + if bpy.context.scene.name != last_scene: + last_scene = bpy.context.scene.name + if not has_data(): + select_all() og_header = None; @@ -65,7 +75,7 @@ def register(): for c in classes: bpy.utils.register_class(c) bpy.types.TOPBAR_MT_workspace_menu.prepend(workspace_menu) - bpy.app.handlers.frame_change_post.append(on_scene) + bpy.app.handlers.frame_change_post.append(on_frame) bpy.app.handlers.load_post.append(on_scene) assign_shortcuts() @@ -74,7 +84,7 @@ def unregister(): bpy.utils.unregister_class(c) bpy.utils.register_class(og_header) bpy.types.TOPBAR_MT_workspace_menu.remove(workspace_menu) - bpy.app.handlers.frame_change_post.remove(on_scene) + bpy.app.handlers.frame_change_post.remove(on_frame) bpy.app.handlers.load_post.remove(on_scene) remove_shortcuts() diff --git a/releases/1.x.x/scene_workspaces-1.1.0.zip b/releases/1.x.x/scene_workspaces-1.1.0.zip index f183938..c11642d 100644 Binary files a/releases/1.x.x/scene_workspaces-1.1.0.zip and b/releases/1.x.x/scene_workspaces-1.1.0.zip differ