From 191380ba013be1cd3d3731ca2fb8292af38c50c2 Mon Sep 17 00:00:00 2001 From: Eiswolf-BG <37225519+Eiswolf-BG@users.noreply.github.com> Date: Thu, 6 Aug 2026 15:09:51 +0200 Subject: [PATCH] Enlarge nearest-airport marquee text to size 2 The scrolling "nearest airport" line on the Location Presets screen was hard to read at size 1. setupMarquee() now measures text width at size 2 (matching what drawMarquee() actually renders), and drawMarquee() resets back to size 1 on both return paths so it doesn't leak into subsequently drawn UI (e.g. the Back button). Co-Authored-By: Claude Sonnet 5 --- src/location_presets_screen.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/location_presets_screen.cpp b/src/location_presets_screen.cpp index 420454e..35ea23a 100644 --- a/src/location_presets_screen.cpp +++ b/src/location_presets_screen.cpp @@ -188,8 +188,15 @@ namespace { // anderer Standort aktiviert wurde) - merkt sich Text + Ringpuffer und // setzt den Scroll-Fortschritt zurueck. void setupMarquee(TFT_eSPI& tft, const String& text, int16_t viewportW) { + // WICHTIG: textWidth() haengt von der aktuell gesetzten Textgroesse + // ab. Der Marquee wird in Size 2 gezeichnet (siehe drawMarquee), + // also muss hier ebenfalls Size 2 aktiv sein, sonst wird die + // Breite falsch (zu schmal) gemessen und der Text ragt beim + // Zeichnen ueber den verfuegbaren Platz hinaus. + tft.setTextSize(2); airportMarquee.text = text; airportMarquee.needsScroll = tft.textWidth(text) > viewportW; + tft.setTextSize(1); String withGap = text + " "; // 5 Leerzeichen Luecke vor der Wiederholung airportMarquee.ring = withGap + withGap; airportMarquee.charOffset = 0; @@ -213,10 +220,16 @@ namespace { tft.fillRect(x, y - h + 4, w, h, TFT_BLACK); tft.setTextColor(TFT_DARKGREEN, TFT_BLACK); + // Groessere Schrift fuer den Nearest-Airport-Marquee (auf Wunsch + // vergroessert von Size 1 auf Size 2) - nach dem Zeichnen wieder auf + // Size 1 zurueckstellen, damit nachfolgender Code (z.B. der + // "Zurueck"-Button) nicht versehentlich auch vergroessert wird. + tft.setTextSize(2); tft.setCursor(x, y); if (!airportMarquee.needsScroll) { tft.print(airportMarquee.text); + tft.setTextSize(1); return; } @@ -231,6 +244,7 @@ namespace { } tft.print(marqueeWindow(tft, airportMarquee.ring, airportMarquee.charOffset, w)); + tft.setTextSize(1); } void runInfoScreen(TFT_eSPI& tft) {