fix(ui): align Update Now/Cancel with the selection caret on 176px displays - #638
Merged
Conversation
…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
marked this pull request as ready for review
August 27, 2026 01:34
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.
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.
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 — atmsg_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 hardcodedy=90/y=105from 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, localversion.txttemporarily lowered to 2.6.2 so the update offer renders):ruff check/formatclean; smoke and unit suites pass (1517 passed).🤖 Generated with Claude Code
https://claude.ai/code/session_01CWDMMi9s5gt39Ta5C9jRgD