[verified] Match Rust Details controls to the tallest label #28

Merged
astaranix merged 1 commit from astaranix/details-header-intrinsic-size into main 2026-09-07 19:44:07 -04:00 AGit
Owner

Summary

  • Make both Rust Details header buttons adopt the largest measured intrinsic height at their existing matching widths.
  • Preserve wrapped labels, centered content, native hit-testing across the expanded padding, and grow/shrink behavior in both stacked and side-by-side layouts.
  • Extend real Iced geometry tests across every status, forced wrapping, same-tree layout changes, either button becoming tallest, and clicks at the padded edge.

Regression

The new header geometry test from #27 passed with desktop fonts but failed in the Nix sandbox: at width 328 the Update available button measured 69.2 high and Check measured 40.6. Disabling font discovery reproduced the exact mismatch with the same test binary. The fix transfers the required height instead of hardcoding a size or suppressing wrapping.

Verification

  • Actual aarch64-linux Nix sandbox release package build passed: 167 tests.
  • cargo test --locked --offline --all-targets --quiet: 167 passed with desktop fonts and 167 passed with font discovery disabled.
  • cargo test --locked --offline --no-default-features --all-targets --quiet: 80 passed.
  • cargo fmt --all -- --check and git diff --check: passed.
  • cargo clippy --locked --offline --all-targets -- -D warnings -A clippy::manual_clamp -A clippy::question_mark: passed. Both exemptions were reconfirmed on the unchanged base.
  • Frozen candidate Rust files matched the successful Nix build source byte-for-byte; Cargo validation was repeated from its immutable export using Rust 1.88.

Nix build: nix build --no-link --no-write-lock-file --override-input nixpkgs github:NixOS/nixpkgs/dc5d91f840324650bac8c379428c7037a416959a .#checks.aarch64-linux.tray-rust-package

Verified derivation: /nix/store/f9nvi28415lv05hxghck867cpl0x97gr-nixos-updater-tray-rust-0.1.0.drv.

Scope

Rust-only; legacy C++ untouched. No dependency, privileged updater, or system configuration changes. No system update was restarted or activated during this work.

## Summary - Make both Rust Details header buttons adopt the largest measured intrinsic height at their existing matching widths. - Preserve wrapped labels, centered content, native hit-testing across the expanded padding, and grow/shrink behavior in both stacked and side-by-side layouts. - Extend real Iced geometry tests across every status, forced wrapping, same-tree layout changes, either button becoming tallest, and clicks at the padded edge. ## Regression The new header geometry test from #27 passed with desktop fonts but failed in the Nix sandbox: at width 328 the Update available button measured 69.2 high and Check measured 40.6. Disabling font discovery reproduced the exact mismatch with the same test binary. The fix transfers the required height instead of hardcoding a size or suppressing wrapping. ## Verification - Actual aarch64-linux Nix sandbox release package build passed: 167 tests. - `cargo test --locked --offline --all-targets --quiet`: 167 passed with desktop fonts and 167 passed with font discovery disabled. - `cargo test --locked --offline --no-default-features --all-targets --quiet`: 80 passed. - `cargo fmt --all -- --check` and `git diff --check`: passed. - `cargo clippy --locked --offline --all-targets -- -D warnings -A clippy::manual_clamp -A clippy::question_mark`: passed. Both exemptions were reconfirmed on the unchanged base. - Frozen candidate Rust files matched the successful Nix build source byte-for-byte; Cargo validation was repeated from its immutable export using Rust 1.88. Nix build: `nix build --no-link --no-write-lock-file --override-input nixpkgs github:NixOS/nixpkgs/dc5d91f840324650bac8c379428c7037a416959a .#checks.aarch64-linux.tray-rust-package` Verified derivation: `/nix/store/f9nvi28415lv05hxghck867cpl0x97gr-nixos-updater-tray-rust-0.1.0.drv`. ## Scope Rust-only; legacy C++ untouched. No dependency, privileged updater, or system configuration changes. No system update was restarted or activated during this work.
## Summary

- Make both Rust Details header buttons adopt the largest measured intrinsic height at their existing matching widths.
- Preserve wrapped labels, centered content, native hit-testing across the expanded padding, and grow/shrink behavior in both stacked and side-by-side layouts.
- Extend real Iced geometry tests across every status, forced wrapping, same-tree layout changes, either button becoming tallest, and clicks at the padded edge.

## Regression

The new header geometry test from #27 passed with desktop fonts but failed in the Nix sandbox: at width 328 the Update available button measured 69.2 high and Check measured 40.6. Disabling font discovery reproduced the exact mismatch with the same test binary. The fix transfers the required height instead of hardcoding a size or suppressing wrapping.

## Verification

- Actual aarch64-linux Nix sandbox release package build passed: 167 tests.
- `cargo test --locked --offline --all-targets --quiet`: 167 passed with desktop fonts and 167 passed with font discovery disabled.
- `cargo test --locked --offline --no-default-features --all-targets --quiet`: 80 passed.
- `cargo fmt --all -- --check` and `git diff --check`: passed.
- `cargo clippy --locked --offline --all-targets -- -D warnings -A clippy::manual_clamp -A clippy::question_mark`: passed. Both exemptions were reconfirmed on the unchanged base.
- Frozen candidate Rust files matched the successful Nix build source byte-for-byte; Cargo validation was repeated from its immutable export using Rust 1.88.

Nix build: `nix build --no-link --no-write-lock-file --override-input nixpkgs github:NixOS/nixpkgs/dc5d91f840324650bac8c379428c7037a416959a .#checks.aarch64-linux.tray-rust-package`

Verified derivation: `/nix/store/f9nvi28415lv05hxghck867cpl0x97gr-nixos-updater-tray-rust-0.1.0.drv`.

## Scope

Rust-only; legacy C++ untouched. No dependency, privileged updater, or system configuration changes. No system update was restarted or activated during this work.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
astaranix/nixos-updater!28
No description provided.