fix(ui): gap below header separator, one method everywhere

Content drawn under the title separator touched the line on every standard
screen, because listStart() == headerH() (the row right after the separator).
Graphical screens worked around it with a hand-rolled hdr+2.

Bake a 2px breathing gap into listStart() so every list gains it at once, and
switch the screens that hand-rolled the offset (Compass, Nav, Nearby detail) to
listStart() so the content top is computed the same way everywhere.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-06-17 21:35:51 +02:00
co-authored by Claude Opus 4.8
parent e5ff2de3e4
commit 2136e959d4
4 changed files with 8 additions and 6 deletions
@@ -404,7 +404,7 @@ class NearbyScreen : public UIScreen {
// ── detail rendering ──────────────────────────────────────────────────────────
void renderStoredDetail(DisplayDriver& display) {
const Entry& e = _entries[_sel];
const int hdr = display.headerH();
const int hdr = display.listStart(); // content top (gap below the header separator)
display.drawInvertedHeader(e.name);
int step = display.lineStep();
@@ -434,7 +434,7 @@ class NearbyScreen : public UIScreen {
void renderScanDetail(DisplayDriver& display) {
const Entry& e = _entries[_sel];
const int hdr = display.headerH();
const int hdr = display.listStart(); // content top (gap below the header separator)
char label[32];
if (e.name[0]) { strncpy(label, e.name, 31); label[31] = '\0'; }