From a4078796231b024256549e2ae2a142f22a593954 Mon Sep 17 00:00:00 2001 From: 4gray Date: Sun, 23 Aug 2026 11:55:16 +0200 Subject: [PATCH] fix(playback): scroll the whole subtitle popover on short players Codex review round 3 on #1471: the delay/style sections sat outside the track list's scroll area, so on short players (220px portal player) they clipped or overflowed past the popover's height cap into the controls bar. The subtitle popover now wraps the list and both sections in one scroll owner; the pinned title and the other popovers are unchanged. Co-Authored-By: Claude Fable 5 --- .../player-controls.component.html | 6 ++++++ .../player-controls.component.scss | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/libs/ui/playback/src/lib/player-controls/player-controls.component.html b/libs/ui/playback/src/lib/player-controls/player-controls.component.html index 16b533195..a85df057c 100644 --- a/libs/ui/playback/src/lib/player-controls/player-controls.component.html +++ b/libs/ui/playback/src/lib/player-controls/player-controls.component.html @@ -359,6 +359,11 @@ 'EMBEDDED_MPV.PLAYER.SUBTITLES' | translate }} + +
@if ( capabilities().subtitles && @@ -619,6 +624,7 @@
} + } diff --git a/libs/ui/playback/src/lib/player-controls/player-controls.component.scss b/libs/ui/playback/src/lib/player-controls/player-controls.component.scss index 8348c3e95..79059f289 100644 --- a/libs/ui/playback/src/lib/player-controls/player-controls.component.scss +++ b/libs/ui/playback/src/lib/player-controls/player-controls.component.scss @@ -505,6 +505,25 @@ color: rgba(255, 255, 255, 0.85); } +// Single scroll owner for the subtitle popover's list + delay/style sections: +// on short players (e.g. the 220px portal player) the panel's max-height cap +// must scroll ALL content — sections outside the list's own scroll area would +// otherwise clip or overflow into the controls bar. +.player-controls__subtitle-body { + display: flex; + flex-direction: column; + flex: 0 1 auto; + min-height: 0; + overflow-y: auto; + scrollbar-width: thin; +} + +// Inside the shared scroll owner the list must not nest a second scroll area. +.player-controls__subtitle-body .player-controls__track-list { + flex: none; + overflow-y: visible; +} + .player-controls__subtitle-section { flex: 0 0 auto; margin-top: 8px;