Skip to content

fix(ui): align Update Now/Cancel with the selection caret on 176px displays - #638

Merged
brickbots merged 1 commit into
mainfrom
fix/software-update-176-layout
Aug 27, 2026
Merged

fix(ui): align Update Now/Cancel with the selection caret on 176px displays#638
brickbots merged 1 commit into
mainfrom
fix/software-update-176-layout

Conversation

@brickbots

Copy link
Copy Markdown
Owner

Problem

On the 176×176 display, when the Software Upd screen offers an update, the "Update Now" / "Cancel" options render well above the selection caret. The labels also collide with the "Release Version" info block, while the caret (▶) sits alone near the bottom of the screen pointing at nothing.

Cause

UISoftware.update() anchors its two-line status messages — and the selection caret — at msg_top/msg_bottom, computed up from the bottom of the screen (resY - 2*pitch - 6). Every message branch ("WiFi must be…", "Checking for…", "No Update needed") was converted to those anchors, but the update-offer branch still drew its labels at hardcoded y=90/y=105 from the 128px layout. On 128px those coincide almost exactly with the anchors (92/107), which is why the bug only shows on 176.

Fix

Draw "Update Now" and "Cancel" at msg_top/msg_bottom, same as the caret and every other branch. Two-line change.

Verification

Reproduced and verified headlessly (--display headless_176, local version.txt temporarily lowered to 2.6.2 so the update offer renders):

  • Before (176): labels at y=90/105 overlapping "Release Version 2.6.3"; caret alone at the bottom.
  • After (176): labels bottom-anchored, caret points at "Update Now"; toggling with DOWN moves it to "Cancel" correctly.
  • After (128): labels shift 2px down to meet the caret exactly — no visible regression.

ruff check/format clean; smoke and unit suites pass (1517 passed).

🤖 Generated with Claude Code

https://claude.ai/code/session_01CWDMMi9s5gt39Ta5C9jRgD

…splays

The Software Upd screen draws its two-line status messages at msg_top/
msg_bottom, anchored up from the bottom of the screen — and the selection
caret is drawn at those same positions. But the "Update Now" / "Cancel"
labels themselves were still drawn at hardcoded y=90/105 from the 128px
days. On the 176px display the anchored caret lands near the bottom while
the labels stay at 90/105, overlapping the Release Version block and
leaving the caret pointing at empty space.

Draw the labels at msg_top/msg_bottom like every other branch of this
screen, so text and caret always agree on any resolution.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CWDMMi9s5gt39Ta5C9jRgD
@brickbots
brickbots marked this pull request as ready for review August 27, 2026 01:34
@brickbots
brickbots merged commit e15662d into main Aug 27, 2026
4 checks passed
mrosseel added a commit to mrosseel/PiFinder that referenced this pull request Aug 27, 2026
Ten commits, from "Bumping version for release" to the rev4 dovetail
case fix.

Conflict resolutions worth recording:

- server.py, the eyepiece edit handler: both sides fixed the same bug
  differently. Upstream changed the lookup list to eyepieces; this branch
  had replaced update_eyepiece() with a direct assignment but kept the
  wrong list. Upstream's version wins. update_eyepiece() assigns and then
  sorts, so nothing is lost.

- ui/software.py: upstream brickbots#638 moves the Update Now and Cancel labels
  onto msg_top/msg_bottom. This branch replaced that screen with the
  channel browser and its confirm view, so the block the fix targets no
  longer exists. Kept this branch's file.

- locale: the catalogs merged as a union, then went through pybabel
  extract, update and compile. Every translation from both sides survives.
  pybabel's fuzzy guesses were dropped ("250 MB" matched to "25mm"), which
  leaves those strings untranslated and keeps the zero-fuzzy convention
  both sides follow. Four dead msgids from the old update screen went with
  it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant