From b21bcb5ca4a50d2183a469b7412ea60209df933d Mon Sep 17 00:00:00 2001 From: Jakub <106778416+MarekZegare4@users.noreply.github.com> Date: Mon, 18 May 2026 16:11:25 +0200 Subject: [PATCH] fix: render reply popup in CHANNEL_HIST and DM_HIST phases _ctx_menu.render() was only called in CONTACT_PICK and CHANNEL_PICK, so the reply popup was active but invisible in history views. Added render calls for list view and fullscreen view in both DM_HIST and CHANNEL_HIST phases. Co-Authored-By: Claude Sonnet 4.6 --- .../companion_radio/ui-new/QuickMsgScreen.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/examples/companion_radio/ui-new/QuickMsgScreen.h b/examples/companion_radio/ui-new/QuickMsgScreen.h index 65803a0a..f2b61aa2 100644 --- a/examples/companion_radio/ui-new/QuickMsgScreen.h +++ b/examples/companion_radio/ui-new/QuickMsgScreen.h @@ -593,9 +593,11 @@ public: const DmHistEntry& e = _dm_hist[ring_pos]; const char* sender = e.outgoing ? "Me" : filtered_name; int dm_count = dmHistCountForContact(_sel_contact.id.pub_key); - return _dm_fs.render(display, sender, e.text, - _dm_hist_sel < dm_count - 1, - _dm_hist_sel > 0); + int ret = _dm_fs.render(display, sender, e.text, + _dm_hist_sel < dm_count - 1, + _dm_hist_sel > 0); + if (_ctx_menu.active) _ctx_menu.render(display); + return ret; } return 500; } @@ -662,6 +664,7 @@ public: display.setCursor(cbx + 2, cby); display.print(ctxt); display.setColor(DisplayDriver::LIGHT); + if (_ctx_menu.active) _ctx_menu.render(display); return dm_count > 0 ? 500 : 2000; } else if (_phase == CHANNEL_HIST) { @@ -680,9 +683,11 @@ public: strncpy(fsender, "?", sizeof(fsender)); strncpy(fmsg, ftext, sizeof(fmsg) - 1); fmsg[sizeof(fmsg)-1] = '\0'; } - return _fs.render(display, fsender, fmsg, - _hist_sel < fs_hist_count - 1, - _hist_sel > 0); + int ret = _fs.render(display, fsender, fmsg, + _hist_sel < fs_hist_count - 1, + _hist_sel > 0); + if (_ctx_menu.active) _ctx_menu.render(display); + return ret; } return 2000; } @@ -767,6 +772,7 @@ public: display.setCursor(cbx + 1, cby); display.print(ctxt); display.setColor(DisplayDriver::LIGHT); + if (_ctx_menu.active) _ctx_menu.render(display); } else if (_phase == KEYBOARD) { return _kb.render(display);