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:
@@ -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.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Test results app 0.2.56 / firmware 0.2.48 (2026-09-16)
|
||||
|
||||
Max found that the back arrow on the colour card of Studio 1 (firmware 0.2.44) did not respond, while the
|
||||
card itself kept working. Cause: `settings_screen::attach_hold` (firmware 0.2.44+) creates the transparent
|
||||
hold strip for the settings page in `on_boot`, after the YAML cards on `home_page`. It therefore lay on top of
|
||||
them, and LVGL's hit test gave taps in the top bar region (x 32-448, y 0-72 on the Guition) to the strip
|
||||
instead of the card's back button (x 16-76, y 16-76) or its action at the top right. See CHANGELOG 0.2.56
|
||||
and the compatibility note in docs/RELEASING.md.
|
||||
|
||||
## Automated
|
||||
|
||||
- Python (`.venv-portal`): 215 tests OK. `tests/test_settings_page.py` adds
|
||||
`test_the_hold_strip_lies_under_every_card`: `attach_hold` moves the strip under `below`, both profiles pass
|
||||
`id(brightness_overlay)`, it is the first card on `home_page` (before colour, climate, climate mode and the
|
||||
dim wake overlay), and the page controls come before it.
|
||||
- C++ (`clang++ -std=c++17 -Wall -Wextra -Werror -I. -I components/smart_display`): 14/14 PASS.
|
||||
- `generate_packages.py --check` green.
|
||||
- LVGL 9.5 `lv_obj_move_to_index` read in the bundled source: moving the strip and then the fill line to the
|
||||
index of `brightness_overlay` leaves strip < line < every card in the child order, and the hit test searches
|
||||
the last child first.
|
||||
|
||||
## Builds (ESPHome 2026.6.2)
|
||||
|
||||
| Profile | RAM | Flash | vs 0.2.55 |
|
||||
|---|---|---|---|
|
||||
| easy-guition-device.yaml | 24.0% (78,732 B) | 18.4% (1,496,815 B) | +0 B RAM, +40 B flash |
|
||||
| easy-cyd-device.yaml | 23.0% (75,484 B) | 76.1% (1,396,847 B) | +0 B RAM, +48 B flash |
|
||||
|
||||
## Not tested / for the owner
|
||||
|
||||
- Hardware and a real LVGL hit test. Nothing was flashed. Studio 1 updates through Home Assistant. On real
|
||||
glass after the update: the back arrow on the brightness, colour and climate cards, the button at the top
|
||||
right of the climate card, and holding the top bar on a tile page still opens the settings page.
|
||||
Reference in New Issue
Block a user