Keep the Now Playing text column readable when the body is short - #17
Merged
chrisuthe merged 3 commits intoSep 2, 2026
Merged
Conversation
With the diagnostics panel open, or at the 560 px minimum height, the art drops towards its floor and the stacked text column followed it, so the title trimmed to a word and the two times overlapped the bar. The column now floors at MinTextColumnWidth, capped at the body, and the bar drops the theme's 200 px MinWidth, which is what pushed it under the labels.
phase3-narrow-min is the window at 400x560 with diagnostics open, the size the brief asks for; phase3-narrow-diagnostics is 440x700 with diagnostics open, the scenario the defect was reported at.
The track style's MinWidth=0 has to beat Fluent's :horizontal setter for the bar to stay in its column; the short-body test now reads it back and runs an hour-long track, whose times leave the bar under 200 px.
chrisuthe
marked this pull request as ready for review
September 2, 2026 01:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #16. With the diagnostics panel open, or at the 560 px minimum height, the art dropped towards its floor and the stacked text column followed it, so the title trimmed to a word and the two times overlapped the bar.
Screenshots
What changed
TrackText.Widthis now the art's width floored atMinTextColumnWidth(280 px, the floor the wide column already had) and capped at the body width minus the two edge margins, throughNowPlayingView.TextColumnWidthFor. It is neverNaNwhen narrow, since the fixed width is what centres and trims the text; the wide composition keepsNaN.ArtSizeForis unchanged, so the art still shrinks on its own.ProgressBarcarriesMinWidth="200", so in any slot narrower than that the bar overflowed its grid column and centred under the two times.ProgressBar.tracknow setsMinWidth="0", and the test reads it back.ArtSizeFortheory is untouched.Verification
make test: Sendspin.Tests 269/269, Sendspin.Ui.Tests 98/98.dotnet format --verify-no-changesclean on Core, Player, Tests, Ui.Tests; Release build withTreatWarningsAsErrorsclean on every Linux-buildable project.XDG_CONFIG_HOME,show_diagnosticson), MA Production connected to it, resized to 400×560 through KWin's scripting D-Bus interface; the screenshots above. The real settings file was not touched.Notes
ScrollViewerhas a fixedMaxHeight="240". That is the shell's body rows, not the text column; the left screenshot shows it. Phase 4 moving diagnostics into Settings removes the panel, or the row could yield to Now Playing's minimum before then.