Let the video tab's Play start at the playhead and reset its button
game-maker / gate (push) Successful in 4m18s
game-maker / suite (push) Successful in 17m57s

Two faults in the video tab. A click into the ruler while a clip
played stopped the playback, but the button kept showing "Stop". And
Play always started at the start of the clip, wherever the playhead
stood.

- The tab now reports when the ruler stops the playback, and the
  button switches back to "Play".
- Play starts at the playhead when it lies inside the clip. Without
  a selected clip the whole video counts. Outside or at the end,
  Play starts at the beginning.
- So Stop and Play continue where the playback stopped. A clip that
  ran to its end without loop starts again at the beginning.

Tests: gate on melektaus-atx green. e2e 66 ALL PASSED, 32 checks (2
new in 66e-i). With both fixes taken back, both checks are red with
exactly the reported faults: the button shows "Stop", and Play runs
from 0.71 s, i.e. from the clip start at 0.6 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-12 13:55:13 +02:00
1 parent f177ee90a4
commit 080df2d211
5 files changed
+60 -13

No files matched your search

+25
View File
@@ -159,6 +159,31 @@ export async function video(t) {
await click(playButton.x, playButton.y);
check('Stop holds it', (await json('__gm.videoTab.playing()')) === false);
// 66e-i. A click in the ruler while it plays stops it, and the header's button says Play again.
// Play then goes on from that moment, not from the clip's start.
const tabState =
'({ playing: __gm.videoTab.playing(), head: __gm.videoTab.playhead(), button: __gm.videoTab.playButton().text })';
await click(playButton.x, playButton.y);
await sleep(150);
const ruler = await json('__gm.videoTab.rulerAt(1)');
await click(ruler.x, ruler.y);
await sleep(150);
const halted = await json(tabState);
await click(playButton.x, playButton.y);
await sleep(150);
const resumed = await json(tabState);
await click(playButton.x, playButton.y);
check(
'a click in the ruler stops the play and its button',
halted.playing === false && halted.button === 'Play' && Math.abs(halted.head - 1) < 0.05,
JSON.stringify(halted),
);
check(
'Play goes on from the playhead',
resumed.playing && resumed.button === 'Stop' && resumed.head >= 1 && resumed.head < 1.4,
JSON.stringify(resumed),
);
// 66e-ii. With the clip picked (#403), a drag in the track off its handles or in the strip beside
// its band changes nothing; one on its band moves it whole, one undo step. A click in the
// track beside it picks the video, on it the clip again.