perf(P4): Auch feste Höhen - LVGL markiert sonst das Layout als dirty (1.9.5) #74

Merged
thomas merged 1 commits from perf/feste-hoehen-und-nachweis into main 2026-09-03 07:25:05 +02:00
Owner

Die festen Breiten aus 1.9.4 haben nicht gereicht. lv_label_set_text ruft lv_obj_refresh_self_size(); ist eines der beiden Maße LV_SIZE_CONTENT, gilt das Parent-Layout als dirty und der Container wird komplett invalidiert.

  • tempField(): big und setp bekommen zusätzlich eine feste Höhe aus lv_font_get_line_height().
  • infoCell(): val ebenso, mit Platz für zwei Zeilen.
  • g_clock: feste Breite/Höhe, rechtsbündig. Erklärt den Bereich x 6..57, y 2..41 (Menü-Knopf), der bei jedem Minutenwechsel durch das Header-Relayout mit invalidiert wurde.

Zusätzlich eine gezielte Diagnose: LV_EVENT_INVALIDATE_AREA auf g_content und der Dashboard-Seite meldet, wenn ein ganzer Container invalidiert wird - damit ist "einzelnes Label" von "kompletter Bereich" zu unterscheiden.

Beide Panel-Varianten mit arduino-cli gegengebaut.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NeFMr439WcLMdebE3kU7fS

Die festen Breiten aus 1.9.4 haben nicht gereicht. `lv_label_set_text` ruft `lv_obj_refresh_self_size()`; ist eines der beiden Maße `LV_SIZE_CONTENT`, gilt das Parent-Layout als dirty und der Container wird komplett invalidiert. - `tempField()`: `big` und `setp` bekommen zusätzlich eine feste Höhe aus `lv_font_get_line_height()`. - `infoCell()`: `val` ebenso, mit Platz für zwei Zeilen. - `g_clock`: feste Breite/Höhe, rechtsbündig. Erklärt den Bereich `x 6..57, y 2..41` (Menü-Knopf), der bei jedem Minutenwechsel durch das Header-Relayout mit invalidiert wurde. Zusätzlich eine gezielte Diagnose: `LV_EVENT_INVALIDATE_AREA` auf `g_content` und der Dashboard-Seite meldet, wenn ein ganzer Container invalidiert wird - damit ist "einzelnes Label" von "kompletter Bereich" zu unterscheiden. Beide Panel-Varianten mit arduino-cli gegengebaut. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NeFMr439WcLMdebE3kU7fS
thomas added 1 commit 2026-09-03 07:25:04 +02:00
Die festen Breiten aus 1.9.4 haben nicht gereicht. lv_label_set_text ruft
lv_obj_refresh_self_size(); ist eines der beiden Maße LV_SIZE_CONTENT, gilt
das Parent-Layout als dirty und der Container wird komplett invalidiert.

- tempField(): big und setp bekommen zusätzlich eine feste Höhe aus
  lv_font_get_line_height().
- infoCell(): val ebenso, mit Platz für zwei Zeilen.
- g_clock: feste Breite/Höhe, rechtsbündig. Erklärt den Bereich
  "x 6..57, y 2..41" (Menü-Knopf), der bei jedem Minutenwechsel durch das
  Header-Relayout mit invalidiert wurde.

Zusätzlich eine gezielte Diagnose: LV_EVENT_INVALIDATE_AREA auf g_content
und der Dashboard-Seite meldet, wenn ein ganzer Container invalidiert wird -
damit ist "einzelnes Label" von "kompletter Bereich" zu unterscheiden.

Beide Panel-Varianten mit arduino-cli gegengebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
thomas merged commit 14f1a4789d into main 2026-09-03 07:25:05 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#74