firecrest/firmware
pyr0ball 434ceda91a fix: enable adv_hittest on dial arcs so touch respects each ring's own radius
Root cause of 'only the cool/blue knob drags, regardless of where you
tap': LVGL's default arc hit-testing just uses each widget's full
bounding square (whichever topmost widget's box contains the touch
point wins), not the precise ring geometry. Since cool_arc's 360x360
box is entirely contained within heat_arc's 400x400 box, cool_arc (on
top in z-order) claimed every touch inside its own square, including
touches physically on heat_arc's outer ring, which sits outside
cool_arc's box but still within heat_arc's simple bounding-box test.

Confirmed via lv_arc.c: LVGL has a precise ring-based hit test
(LV_EVENT_HIT_TEST, respects each widget's own radius and angular
span) but it's opt-in via the ADV_HITTEST flag; without it, LVGL
falls back to the simple bounding-box test. Verified the adv_hittest:
true YAML property generates lv_obj_add_flag(..., LV_OBJ_FLAG_ADV_HITTEST)
via an isolated test compile before applying to both arcs.

The differing radii (400/360) from the previous fix are still useful
for visual separation but were never sufficient on their own — this
flag is what actually makes hit-testing respect the radius difference.
2026-07-12 10:45:52 -07:00
..
components fix: enable adv_hittest on dial arcs so touch respects each ring's own radius 2026-07-12 10:45:52 -07:00
.gitignore chore: add esphome-generated build gitignore 2026-07-11 22:29:19 -07:00
secrets.example.yaml feat: scaffold ESPHome project for Waveshare ESP32-S3 7" thermostat 2026-07-11 19:53:54 -07:00
waveshare-thermostat-classic.yaml feat: scaffold classic variant with hamburger nav and reused Sensors/Settings/Schedule pages 2026-07-12 00:39:52 -07:00
waveshare-thermostat.yaml refactor: extract shared panel.yaml (RGB panel, touch, IO expander) from display.yaml 2026-07-12 00:26:29 -07:00