perf(l2): choice popups open smoothly, switches never cut short by a rebuild

A popup over a still screen is frozen and dimmed as it opens, so the
panel's rise redraws only the panel: 6-8 frames of 19-25 ms instead of
3-4 of 45-65 ms. Picker options are one label each (time zone list
97 -> 52 ms to build). The bottom popup no longer animates a dim of 0.

Repeater updates its hint in place (130 ms rebuild gone); Auto power,
Imperial units and Relay on rebuild the screen after the knob has
moved (rebuildSoon). -D PERF_CONTROLS times every control on the
settings screens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-01 11:27:48 +02:00
co-authored by Claude Opus 5.5
parent 910a7c0197
commit 1125e9a13e
4 changed files with 281 additions and 47 deletions
@@ -397,6 +397,8 @@ private:
void buildClock();
void buildRadio();
void rebuildRadio();
void rebuildSchemaSettings();
void rebuildSoon(void (UITask::*fn)()); // after the switch that asked for it has moved
void radioGroup(int i);
void buildRadioExtras(lv_obj_t* body);
void buildScopes();