fix(ui): keep messages visible after scrolling in non-chat windows #123

Manually merged
jabber.developer merged 5 commits from fix/scroll-non-chat-windows into master 2026-05-16 15:48:09 +00:00
2 changed files with 15 additions and 8 deletions
Showing only changes of commit ef0dd74dc1 - Show all commits

View File

@@ -301,12 +301,6 @@ cl_ev_send_ai_msg(ProfAiWin* aiwin, const char* const message, const char* const
return;
}
/* Reset paged flag before printing user message.
* If the user scrolled up to view history, paged=1 would suppress
* the message in _win_printf(). Reset it here so the message displays. */
aiwin->window.layout->paged = 0;
aiwin->window.layout->unread_msg = 0;
// Display user message in AI window.
win_print_outgoing(&aiwin->window, ">>", id, NULL, message);

View File

@@ -1809,10 +1809,15 @@ static void
_win_printf(ProfWin* window, const char* show_char, int pad_indent, GDateTime* timestamp, int flags, theme_item_t theme_item, const char* const display_from, const char* const from_jid, const char* const message_id, const char* const message, ...)
{
/* Prevent printing and buffer update when user is viewing message history [SCROLLING]*/
/* While the user is scrolled, bump the unread indicator. Only WIN_CHAT
* skips the buffer/render entirely — it can recover the message via
* chatwin_db_history on scroll-down. Other window types have no DB
* fallback, so the message must still be appended to the buffer and pad. */
if (window->layout->paged && wins_is_current(window)) {
window->layout->unread_msg++;
return;
if (window->type == WIN_CHAT) {
return;
}
}
if (timestamp == NULL) {