Fix scroll/paging state and buffer handling #45

Manually merged
jabber.developer merged 6 commits from playground/fix/scroll-stuck into master 2026-01-07 10:56:04 +00:00
Showing only changes of commit 33543d2543 - Show all commits

View File

@@ -1696,6 +1696,23 @@ win_newline(ProfWin* window)
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, ...)
{
/* Test code start
Description: this code prevents printing and buffer update when user is viewing message history [SCROLLING]
TODO:
- check window->layout->paged handling for reliability (if buffer size is less than window size [SCROLLING] not set)
- make a propper condition check for differernt cases
- add a user notification in header when new messages arrive while scrolling history
- handle SCROLLED state properly in case of incominf messages (currently it is cleared before new message is printed)
jabber.developer marked this conversation as resolved Outdated

Nice place for condition and logic.

I feel that readability could be slightly improved without extra pair of parentheses in (window->layout->paged).

Nice place for condition and logic. I feel that readability could be slightly improved without extra pair of parentheses in `(window->layout->paged)`.
#warning "TEST CODE: temporary/test code present in window.c:1709 - remove before release"*/
if ((window->layout->paged) && wins_is_current(window)) {
return;
}
/* Test code end */
if (timestamp == NULL) {
timestamp = g_date_time_new_now_local();
} else {