fix(ui-lvgl): quick panel over a frozen screen; slider not taken by Home's swipe

- Quick panel: the screen under it is frozen and dimmed in one snapshot
  (freeze::early), so the slide redraws an image and the panel; a tap or
  swipe up under it closes it and nothing under it takes a touch. Tiles are
  two pages of four with dots; tiles restyle only when their state changes.
- Home: a touch that starts on the top layer (the quick panel, the status
  bar) is not a page swipe -- a sideways drag of the brightness slider over
  Home ended the drag and turned the page under it.
- Keyboard: OK and hide don't put the cursor back on a field whose keyboard
  is gone.
- BotScreen: adminRowBox -> centerRow (the sim build broke in 3293ac09).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-06 09:17:32 +02:00
co-authored by Claude Opus 5.5
parent bac4c12467
commit a5956d79ae
4 changed files with 95 additions and 28 deletions
+2 -2
View File
@@ -218,14 +218,14 @@ void UITask::botRow(int row) {
if (botcfg::isHour(r.kind)) {
lv_obj_t* panel = navPopupPanel(r.label, false);
label(panel, "Same hour for both = no quiet hours.", THEME_FONT_SMALL, theme::TEXT_MUTED);
lv_obj_t* rw = adminRowBox(panel);
lv_obj_t* rw = centerRow(panel);
botHourButton(rw, LV_SYMBOL_MINUS, B_MINUS, false);
s_hour_lbl = label(rw, "", THEME_FONT_LARGE, theme::TEXT);
lv_obj_set_width(s_hour_lbl, 80);
lv_obj_set_style_text_align(s_hour_lbl, LV_TEXT_ALIGN_CENTER, 0);
lv_label_set_text_fmt(s_hour_lbl, "%02d:00", botcfg::hour(p, r.kind));
botHourButton(rw, LV_SYMBOL_PLUS, B_PLUS, false);
rw = adminRowBox(panel);
rw = centerRow(panel);
botHourButton(rw, LV_SYMBOL_OK " Done", B_DONE, true);
}
}