Fix handler frame for only new scene change

This commit is contained in:
Francesco Bellini 2024-09-14 00:02:12 +02:00
parent 397a20c721
commit facd4240fd
2 changed files with 13 additions and 3 deletions

View File

@ -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()