revert: restore differing heat/cool arc radii, required for independent touch

Making both arcs 400px (same-size rings, requested for visual alignment)
broke independent dragging: LVGL's adv_hittest arc hit test only accepts
touches within an arc's own ring band (radius - arc_width to radius, within
its angular span), confirmed via lv_arc.c LV_EVENT_HIT_TEST. Two identical
rings occupy the same band, so only the topmost (cool_arc) ever won the
touch, confirmed on hardware. Reverting to 400px/360px nested rings restores
independent heat/cool dragging; same-size same-position arcs are not
achievable with LVGL's current hit-testing without a larger redesign.
This commit is contained in:
pyr0ball 2026-07-12 16:26:51 -07:00
parent 6376c539ed
commit c9df881066

View file

@ -172,9 +172,13 @@ lvgl:
id: cool_arc
align: center
y: -20
width: 400px # same radius as heat_arc — concentric, same-size rings by request.
height: 400px # touch disambiguation is handled entirely by adv_hittest below, not
# by radius difference, so same-size rings still target correctly.
width: 360px # smaller radius than heat_arc (400px) so the two rings are physically
height: 360px # distinct. LVGL's adv_hittest arc hit test only accepts touches within
# the arc's own ring band (radius - arc_width to radius, in its angular
# span) — confirmed via lv_arc.c LV_EVENT_HIT_TEST. Same-radius arcs
# occupy an identical ring band, so adv_hittest alone CANNOT disambiguate
# them (verified on hardware: making both 400px left only the topmost,
# cool_arc, draggable). Differing radii are required, not optional.
start_angle: 315
end_angle: 225
mode: REVERSE