Let a card's back button take its taps again (0.2.56)

Since firmware 0.2.44 the back arrow of the brightness, colour and climate
cards barely responded, and so did the button at the top right of the
climate card. on_boot created the settings hold strip after the YAML cards
on home_page, so the transparent strip lay on top of them and LVGL's hit
test gave it the taps in the top bar region.

attach_hold now takes the first card as `below` and moves the strip and its
fill line to that index, under every card. Holding the top bar opens the
settings page from the tile pages only. The dim wake overlay was never
affected: apply_screen_settings moves it to the foreground when dimmed.

Checked with 215 Python and 14 C++ tests, generate_packages --check, and
ESP32 builds of both Easy profiles. Firmware 0.2.48.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-16 11:34:21 +02:00
parent 6df967bfef
commit 93fa7e2712
11 changed files with 95 additions and 12 deletions
+13
View File
@@ -176,6 +176,19 @@ icons sit off-center in the browser); run `generate_packages.py` afterward.
The `MDI_GLYPH_*` substitutions are retired: `TILEn_ICON` in manual
profiles must come from the set. No changed preferences or keys.
### Compatibility 0.2.56 / firmware 0.2.48
`components/smart_display/settings_screen.h` and both board profiles; the app only raises `FIRMWARE_VERSION`.
Storage, tile protocol, preferences and keys are unchanged.
- `settings_screen::attach_hold(page, x, y, w, h, below)` moves the hold strip and its fill line to the index of
`below`, directly under it. Both profiles pass `id(brightness_overlay)`, the first of the YAML cards on
`home_page` (brightness, colour, climate, climate mode, then the dim wake overlay). Before, `on_boot` created
the strip after them, so LVGL's hit test found the transparent strip (x 32-448 on the Guition, 72 px high)
before a card's back button (x 16-76) or its action at the top right. The dim wake overlay was not affected:
`apply_screen_settings` moves it to the foreground whenever the screen is dimmed. The runtime detail card
and the settings page move themselves to the foreground and were not affected either.
### Compatibility 0.2.55 / firmware 0.2.47
App, board profiles and `components/smart_display`. Storage, tile protocol, preferences and keys are unchanged.