Jabber Developer f636090fd9
All checks were successful
CI / Check spelling (pull_request) Successful in 29s
CI / Check coding style (pull_request) Successful in 2m22s
CI / Linux (debian) (pull_request) Successful in 11m28s
CI / Linux (fedora) (pull_request) Successful in 16m46s
CI / Linux (arch) (pull_request) Successful in 20m29s
CI / Linux (ubuntu) (pull_request) Successful in 35m7s
CI / Check spelling (push) Successful in 17s
CI / Check coding style (push) Successful in 31s
CI / Linux (ubuntu) (push) Successful in 11m11s
CI / Linux (debian) (push) Successful in 13m26s
CI / Linux (fedora) (push) Successful in 16m10s
CI / Linux (arch) (push) Successful in 32m49s
fix(window): preserve scroll offset on page_down and refactor
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
2025-07-02 19:27:15 +02:00
2021-12-24 13:49:07 +01:00
2025-06-20 18:20:47 +00:00
2025-03-27 20:27:09 +01:00
2016-03-09 12:55:57 +01:00
2025-03-11 12:15:09 +01:00
2025-06-20 18:20:47 +00:00
2022-02-01 15:01:28 +01:00
2025-01-28 16:43:13 +01:00
2025-03-27 20:06:38 +01:00
2025-03-27 20:27:09 +01:00
2025-06-20 18:20:47 +00:00
2021-08-26 00:30:55 +00:00
2025-03-11 12:15:09 +01:00
2025-04-16 11:06:49 +02:00
2025-03-11 12:15:09 +01:00
2025-03-11 12:15:09 +01:00
2019-04-24 01:08:38 +02:00
2025-03-11 12:15:09 +01:00
2025-04-10 07:23:35 +02:00
2025-06-20 18:20:47 +00:00
2025-06-20 18:20:47 +00:00
2020-05-21 09:16:18 +02:00

Profanity

Build Status GitHub contributors Packaging status

Profanity is a console based XMPP client inspired by Irssi.

alt tag

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.

Website

Repo: https://git.jabber.space/devs/profanity

Plugins

Plugins repository: https://github.com/profanity-im/profanity-plugins

Description
No description provided
Readme 40 MiB
Languages
C 95.2%
Python 1.7%
Makefile 0.9%
M4 0.8%
Shell 0.7%
Other 0.6%