0.10.3: preloader + multi-scene export parity, jumpToScene rewinds
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
87de1344c4
commit
fcb8edbb88
6 files changed
+461
-102
No files matched your search
+14
-6
@@ -1973,11 +1973,13 @@ export const useSceneStore = defineStore('scene', {
|
||||
/** Activate a page by id. Clears any drill-down state (clip-edit,
|
||||
* button-edit, selections, drawing) so the new page isn't shown
|
||||
* through the lens of a context that belongs to another page.
|
||||
* Playback state is left alone — in the editor, flipping scenes
|
||||
* is a navigation gesture and shouldn't force play. The fullscreen
|
||||
* preview takes care of auto-playing on its own (the activeSceneId
|
||||
* watcher re-mounts the preview player with play enabled). */
|
||||
switchScene(id: string): boolean {
|
||||
* Playback state is left alone by default — in the editor,
|
||||
* flipping scenes is a navigation gesture and shouldn't force
|
||||
* play or rewind. Script-fired or button-fired jumps use
|
||||
* `{ resetPlayhead: true }` instead so the incoming scene starts
|
||||
* at its own in-point rather than inheriting the previous
|
||||
* scene's paused frame. */
|
||||
switchScene(id: string, options?: { resetPlayhead?: boolean }): boolean {
|
||||
if (!this.project.scenes.find((s) => s.id === id)) return false
|
||||
this.project.activeSceneId = id
|
||||
this.activeClipId = null
|
||||
@@ -1990,6 +1992,9 @@ export const useSceneStore = defineStore('scene', {
|
||||
this.drawingMode = null
|
||||
this.drawingAssetId = null
|
||||
this.drawingLayerId = null
|
||||
if (options?.resetPlayhead) {
|
||||
this.playhead = this.playbackIn
|
||||
}
|
||||
return true
|
||||
},
|
||||
renameScene(id: string, name: string): boolean {
|
||||
@@ -2623,7 +2628,10 @@ export const useSceneStore = defineStore('scene', {
|
||||
self.pause()
|
||||
},
|
||||
switchScene(sceneId: string) {
|
||||
self.switchScene(sceneId)
|
||||
// Script/button jumps restart the target scene at its in-point.
|
||||
// Drawer clicks go through store.switchScene directly and keep
|
||||
// the current playhead — navigation vs. transition.
|
||||
self.switchScene(sceneId, { resetPlayhead: true })
|
||||
},
|
||||
warn(msg: string) {
|
||||
// eslint-disable-next-line no-console
|
||||
|
||||
Reference in new issue
Block a user