When paging down beyond the visible chat buffer, the scroll position could jump unexpectedly. This occurred because the visual distance from the bottom (e.g. 6 lines until the last message) wasn’t preserved after loading new messages from the DB. This patch fixes that by capturing the visual offset (`current_offset`) before the DB fetch and reapplying it after, based on the y-position of the final buffer entry. This ensures consistent and smooth scroll transitions, even as message heights vary. In addition to fixing the visual glitch, this commit introduces a targeted performance optimization: once the bottom of the chat has been reached (`WIN_SCROLL_REACHED_BOTTOM`), we skip expensive operations entirely — including datetime lookups and entry formatting — during further page_down events. This reduces performance stalls during rapid paging (e.g. holding the Page Down key at the bottom of the scrolling area). This update also adapts to the recent change in `chatwin_db_history()`, which now returns a `db_history_result_t` instead of `gboolean`, allowing correct differentiation between an empty result and an actual DB error. Together, these changes: - Fix a scroll-jump bug in `page_down` - Improve performance and responsiveness during rapid navigation - Align with improved DB result handling
Profanity
Profanity is a console based XMPP client inspired by Irssi.
See the User Guide for information on installing and using Profanity.
Project
This project is about freedom, privacy and choice. We want to enable people to chat with one another in a safe way. Thus supporting encryption (OTR, PGP, OMEMO, OX) and being decentralized, meaning everyone can run their own server. We believe XMPP is a great proven protocol with an excellent community serving this purpose well.
Installation
Our user guide contains an install section and a section for building from source yourself.
How to contribute
We tried to sum things up on our helpout page. Additionally you can check out our blog where we have articles like: How to get a backtrace and Contributing a Patch via GitHub. For more technical details check out our CONTRIBUTING.md file.
Getting help
To get help, first read our User Guide then check out the FAQ. If you are having a problem then first search the issue tracker. If you don't find anything there either come to our MUC or create a new issue depending on what your problem is.
Links
Website
Repo: https://git.jabber.space/devs/profanity
Plugins
Plugins repository: https://github.com/profanity-im/profanity-plugins
