ui: refine subtitle layout and preserve hidden controls on seeks

This commit is contained in:
2026-10-12 23:58:24 +02:00
parent e66f45d9ef
commit 1aa5454194
3 changed files with 29 additions and 7 deletions
+15
View File
@@ -183,6 +183,21 @@ struct SystemPlaybackChecks {
require(model.setPlayback(playing: true), "repeated play accepted")
until("repeated play keeps playing") { model.state.status == PLAYER_PLAYING && model.state.position > 0.2 }
if !NSWorkspace.shared.isVoiceOverEnabled {
require(model.perform(.enterCompact), "compact playback is available for hidden-keyboard seeking")
until("compact entry completes before hiding controls") { !model.compactWindow.isTransitioning }
model.hideControls(hideCursor: false)
require(!model.controlsVisible, "playing chrome can be hidden before a keyboard seek")
require(model.handleKey(try! KeyChord("left")), "keyboard seek is accepted while chrome is hidden")
require(!model.controlsVisible, "keyboard seek must not flash playback chrome")
until("hidden keyboard seek acknowledges the start boundary") {
require(!model.controlsVisible, "seek acknowledgement must preserve hidden chrome")
return !model.state.seek_pending && model.state.position < 0.15
}
require(model.perform(.exitCompact), "keyboard seek check restores normal mode")
until("compact exit completes") { !model.compactWindow.isTransitioning }
}
// Closing must hide the last polled retained range before the next state poll.
var retainedSnapshot = model.state
retainedSnapshot.buffered_start = retainedSnapshot.position