fix: clear default clickable flag on temp_view/status_view to unblock mode toggle

LVGL's base obj is clickable by default (lv_obj_create sets
LV_OBJ_FLAG_CLICKABLE unconditionally). As full-screen, topmost siblings of
mode_toggle, temp_view and status_view were silently capturing every tap
over the toggle bar via lv_obj_hit_test before the touch search could reach
mode_toggle underneath, even though they have no on_click of their own.
Confirmed via generated C++ (lv_obj_remove_flag ... LV_OBJ_FLAG_CLICKABLE)
and hardware testing.
This commit is contained in:
pyr0ball 2026-07-12 14:04:49 -07:00
parent 4111f11b04
commit 91f47be62a

View file

@ -103,6 +103,13 @@ lvgl:
outline_width: 0
scrollable: false
bg_opa: transp
# LVGL's base obj is clickable by default (obj->flags = LV_OBJ_FLAG_CLICKABLE in
# lv_obj_create) and lv_obj_hit_test() requires that flag before checking geometry.
# Being a full-screen, topmost sibling of mode_toggle, this container was silently
# swallowing every tap over the toggle bar (no on_click, so nothing visibly happened)
# before the touch search could reach mode_toggle underneath — same z-order class of
# bug as the bg_opa fix above, but for touch capture instead of rendering.
clickable: false
widgets:
- arc:
id: dial_bg_arc
@ -277,6 +284,7 @@ lvgl:
outline_width: 0
scrollable: false
bg_opa: transp
clickable: false # see temp_view comment above — same touch-capture fix
layout:
type: flex
flex_flow: column