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 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-18 16:11:25 +02:00
co-authored by Claude Sonnet 4.6
parent 6f7de3ed20
commit b21bcb5ca4
@@ -593,9 +593,11 @@ public:
const DmHistEntry& e = _dm_hist[ring_pos]; const DmHistEntry& e = _dm_hist[ring_pos];
const char* sender = e.outgoing ? "Me" : filtered_name; const char* sender = e.outgoing ? "Me" : filtered_name;
int dm_count = dmHistCountForContact(_sel_contact.id.pub_key); int dm_count = dmHistCountForContact(_sel_contact.id.pub_key);
return _dm_fs.render(display, sender, e.text, int ret = _dm_fs.render(display, sender, e.text,
_dm_hist_sel < dm_count - 1, _dm_hist_sel < dm_count - 1,
_dm_hist_sel > 0); _dm_hist_sel > 0);
if (_ctx_menu.active) _ctx_menu.render(display);
return ret;
} }
return 500; return 500;
} }
@@ -662,6 +664,7 @@ public:
display.setCursor(cbx + 2, cby); display.setCursor(cbx + 2, cby);
display.print(ctxt); display.print(ctxt);
display.setColor(DisplayDriver::LIGHT); display.setColor(DisplayDriver::LIGHT);
if (_ctx_menu.active) _ctx_menu.render(display);
return dm_count > 0 ? 500 : 2000; return dm_count > 0 ? 500 : 2000;
} else if (_phase == CHANNEL_HIST) { } else if (_phase == CHANNEL_HIST) {
@@ -680,9 +683,11 @@ public:
strncpy(fsender, "?", sizeof(fsender)); strncpy(fsender, "?", sizeof(fsender));
strncpy(fmsg, ftext, sizeof(fmsg) - 1); fmsg[sizeof(fmsg)-1] = '\0'; strncpy(fmsg, ftext, sizeof(fmsg) - 1); fmsg[sizeof(fmsg)-1] = '\0';
} }
return _fs.render(display, fsender, fmsg, int ret = _fs.render(display, fsender, fmsg,
_hist_sel < fs_hist_count - 1, _hist_sel < fs_hist_count - 1,
_hist_sel > 0); _hist_sel > 0);
if (_ctx_menu.active) _ctx_menu.render(display);
return ret;
} }
return 2000; return 2000;
} }
@@ -767,6 +772,7 @@ public:
display.setCursor(cbx + 1, cby); display.setCursor(cbx + 1, cby);
display.print(ctxt); display.print(ctxt);
display.setColor(DisplayDriver::LIGHT); display.setColor(DisplayDriver::LIGHT);
if (_ctx_menu.active) _ctx_menu.render(display);
} else if (_phase == KEYBOARD) { } else if (_phase == KEYBOARD) {
return _kb.render(display); return _kb.render(display);