Skip flush before chain triggers whose source was already ended

This commit is contained in:
Ian Gulliver
2026-02-18 22:55:11 -07:00
parent 4a7eb4aa2a
commit 28f58f48f8

View File

@@ -268,11 +268,11 @@ function render(data) {
if (src.signal === 'START') return; if (src.signal === 'START') return;
const isCue = src.signal === 'GO'; const isCue = src.signal === 'GO';
flush();
if (isChain(trigger)) { if (isChain(trigger)) {
const tid = blockTrack(src.block); const tid = blockTrack(src.block);
const tgt = trigger.targets[0].block; const tgt = trigger.targets[0].block;
const sourceHandled = active.get(tid) !== src.block && !pendingEnds.has(src.block);
if (!sourceHandled) flush();
if (active.get(tid) === src.block || pendingEnds.has(src.block)) { if (active.get(tid) === src.block || pendingEnds.has(src.block)) {
pendingEnds.delete(src.block); pendingEnds.delete(src.block);
const endCells = trackIds.map(t => const endCells = trackIds.map(t =>
@@ -300,6 +300,7 @@ function render(data) {
return; return;
} }
flush();
emitTitles(); emitTitles();
const rowClass = isCue ? 'cue-row' : 'sig-row'; const rowClass = isCue ? 'cue-row' : 'sig-row';