fix: wrap classic Home screen in a sized container, separate dial arc radii

Two bugs found on first hardware test:

1. page_home placed all widgets directly on the page with no sized
   wrapper container, unlike every other page in this codebase (which
   all wrap content in an explicit width/height obj before using
   align:). The dial and its siblings rendered tiny and pinned to the
   top-left instead of filling/centering on the real 1024x600 screen.
   Wrapped all of page_home's content in a width:100%/height:100% obj,
   matching the established pattern.

2. heat_arc and cool_arc were both adjustable:true at the identical
   400x400 size, so their rings occupied the same physical pixels.
   LVGL hit-tests arcs by distance from center, so a shared radius is
   touch-ambiguous, and the topmost widget (cool_arc, declared last)
   won every touch regardless of where on the ring you tapped. Shrunk
   cool_arc to 360x360 so the two rings are physically distinguishable
   by touch position.
This commit is contained in:
pyr0ball 2026-07-12 10:02:56 -07:00
parent 3d47e80de6
commit 1f750ea779

View file

@ -6,6 +6,14 @@ lvgl:
- touch_gt911
pages:
- id: page_home
widgets:
- obj:
width: 100%
height: 100%
pad_all: 0
border_width: 0
outline_width: 0
scrollable: false
widgets:
- label:
align: top_left
@ -118,8 +126,11 @@ lvgl:
id: cool_arc
align: center
y: -20
width: 400px
height: 400px
width: 360px # smaller radius than heat_arc (400px) so the two rings occupy
height: 360px # different physical pixels — LVGL hit-tests arcs by distance
# from center, and two arcs at the same radius are touch-ambiguous;
# the topmost one (this one, declared last) always wins regardless
# of where along the ring you actually tap
start_angle: 315
end_angle: 225
mode: REVERSE