fix(qt): pane corners stay round under the dynamic background
AppShell hides its BezelCorner nubs while the field is meant to show
through the pane's corners, and Qt's clip is a rectangular scissor that
ignores radius — so any full-bleed child at y=0 squares the pane. The
doctrine was already written in AppShell.qml ("a full-bleed pane child
must round itself; there is no mask that can do it for it here"); these
eight surfaces predated it or, in the two thin bars added with the
ambient port, ignored it.
- The seven fixed 56px headers (Home, Search, DiscoverBrowse,
ArtistReleases, PlaylistBrowse, PlaylistManager, PlayHistory) take
topLeftRadius/topRightRadius. Invisible with the background off, where
the view root paints the same colour beneath. PlaylistBrowse's SECOND
bar is the category strip at mid-page and keeps square corners;
PlayHistory keeps its unconditional opaque fill, which is reference
parity (:43/:34) and a separate question from the corner.
- LocalAlbumView's neutral header band is now gated on the background,
1:1 with the Qobuz page's atmosphere (AlbumView headerAtmoOn,
AlbumPageView.slint:168): the two dark backdrops clash and the field
already provides one. That band had been square since it was written;
the nubs had been hiding it, and they only stand down when the field
is showing. Header text there is theme.textPrimary, not the Qobuz
page's light-on-dark hdrStrong, so it does not depend on the band to
stay readable — checked before removing the backdrop from under it.
Gate: cargo build -p qbz-qt, both QML audits, offscreen smoke 0
complaints.
cc
This commit is contained in:
8 files changed
+92
No files matched your search
@@ -407,6 +407,18 @@ Rectangle {
|
||||
// lost its backing exactly when it needed one.
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
// Rounded at the TOP because this bar is full-bleed at y=0 of
|
||||
// the content pane, and under the dynamic background the pane's
|
||||
// own rounding cannot reach it: Qt's `clip` is a rectangular
|
||||
// scissor that ignores `radius`, and AppShell hides its bezel
|
||||
// nubs while the field is meant to show through the corners.
|
||||
// So a full-bleed pane child rounds ITSELF — AppShell.qml says
|
||||
// exactly this ("there is no mask that can do it for it here")
|
||||
// and this bar was the counterexample the owner spotted in
|
||||
// Discover. Invisible with the background off: the view root
|
||||
// paints the same colour underneath.
|
||||
topLeftRadius: theme.radiusMd
|
||||
topRightRadius: theme.radiusMd
|
||||
color: root.ambientOn ? theme.surfaceMainA30 : theme.surfaceMain
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user