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
+4 -1
View File
@@ -259,7 +259,10 @@ static void onEvent(lv_event_t* e) {
return;
}
lv_keyboard_def_event_cb(e); // type the character / backspace / OK
if (lv_obj_t* ta = lv_keyboard_get_textarea(kbd)) keepCursor(ta);
// OK and hide put the keyboard (and the field's cursor) away themselves
const bool closes = strcmp(t, KB_OK) == 0 || strcmp(t, KB_HIDE) == 0;
lv_obj_t* ta = lv_keyboard_get_textarea(kbd);
if (ta && !closes && !lv_obj_has_flag(kbd, LV_OBJ_FLAG_HIDDEN)) keepCursor(ta);
if (strcmp(t, KB_BS) != 0) releaseShift(kbd);
}