Merge pull request 'Colour the window's frame, inset Hosts like its neighbours, drop Pins' (#9) from claude/title-bar-color-windows-6d386c into main
ci / build and test (push) Successful in 2m45s
ci / android head (push) Successful in 3m41s
ci / desktop nightly (push) Successful in 1m29s
ci / api image (push) Successful in 31s

Reviewed-on: #9
This commit was merged in pull request #9.
This commit is contained in:
2026-08-12 11:12:14 +00:00
9 changed files with 236 additions and 42 deletions
@@ -1596,7 +1596,7 @@ public sealed class ScreenLayoutTests : IAsyncLifetime
/// <remarks>
/// <para>
/// v5b's redraw changes what this test has to hold. Three button shapes live in the rail now rather
/// than one: the switcher's three segments, each a third of the rail's own content width; the six item
/// than one: the switcher's three segments, each a third of the rail's own content width; the five item
/// rows below it and the user chip at the foot, both the rail's full content width. A single
/// across-the-board width assertion the way the v3 version of this test made one would either be wrong
/// for the segments or have to loosen until it caught nothing, so each shape gets its own count and its
@@ -1604,13 +1604,18 @@ public sealed class ScreenLayoutTests : IAsyncLifetime
/// </para>
/// <para>
/// The rail runs vertically, so what runs out at the window's minimum is still height — a switcher plus
/// six rows plus a user chip have to leave room for each other in the same space the v3 rail's seven
/// five rows plus a user chip have to leave room for each other in the same space the v3 rail's seven
/// plain rows did. Both counts are asserted in both directions for the reason the old test's was: an
/// entry silently dropping off the bottom would still pass every other assertion here.
/// </para>
/// <para>
/// Five and not six since Pins left the rail: the pins screen is reached from "Host keys" on the Keys
/// screen, which was always the other way in. Exact rather than a bound, so putting a row back is a
/// decision somebody makes here rather than something that slips in.
/// </para>
/// </remarks>
[Fact]
public async Task TheNavRailHoldsItsSwitcherSixDestinationsAndTheUserChipAtTheWindowsMinimum()
public async Task TheNavRailHoldsItsSwitcherFiveDestinationsAndTheUserChipAtTheWindowsMinimum()
{
await LayoutHarness.OnTheUiThreadAsync(
() =>
@@ -1630,7 +1635,7 @@ public sealed class ScreenLayoutTests : IAsyncLifetime
segments.Count.ShouldBe(3, "SSH, SFTP and S3");
rows.Count.ShouldBe(
6, "the mode-dependent first row, then Hosts, Keys, Pins, Snips and Logs");
5, "the mode-dependent first row, then Hosts, Keys, Snips and Logs");
foreach (var segment in segments)
{