From efb6a8b629c3ba636d33b9c0a32dc6915816bc25 Mon Sep 17 00:00:00 2001 From: MarekZegare4 Date: Mon, 29 Jun 2026 22:59:59 +0200 Subject: [PATCH] fix(companion): keep [+ send] visible in DM/room history when not selected In the DM/room message history, the message loop leaves the ink DARK when the last drawn box is the selected one, so the unselected [+ send] row printed dark-on-dark and vanished. Most visible in room servers, where there's always a selected message. Reset to LIGHT before drawing the row (matching the channel-history version). Pre-existing bug, independent of the history-store refactor. Co-Authored-By: Claude Opus 4.8 --- examples/companion_radio/ui-new/QuickMsgScreen.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/companion_radio/ui-new/QuickMsgScreen.h b/examples/companion_radio/ui-new/QuickMsgScreen.h index 50e7805d..07904072 100644 --- a/examples/companion_radio/ui-new/QuickMsgScreen.h +++ b/examples/companion_radio/ui-new/QuickMsgScreen.h @@ -963,6 +963,11 @@ public: const char* ctxt = "[+ send]"; int ctw = display.getTextWidth(ctxt); int cbx = 1; + // Reset to LIGHT first: the message loop above leaves the ink DARK when the + // last drawn box was the selected one, which would render an unselected + // [+ send] invisibly (dark-on-dark) — most visible in rooms, where there's + // always a selected message. With it selected we invert (light bar/dark text). + display.setColor(DisplayDriver::LIGHT); if (compose_sel) { display.fillRect(cbx, cby - 1, ctw + 4, lh + 1); display.setColor(DisplayDriver::DARK);