1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-09 21:30:42 +00:00
Go to file
John Hernandez 4fe2c423b1
Fix overscrolling issue
Before there was a problem of overscrolling:
when messages longer than y axis of the terminal are fetched from the DB,
profanity scroll "jumps" to the top, skipping some messages.

It's resolved by keeping messages' starting and ending line in the
internal profanity buffer, which allows to track proper message positions
and to adjust window position accordingly.

Message size is now tracked as part of the buffer's record in `_line`
variable, which allows calculation of the total buffer size, which
might be a part of the improved solution for the "underscrolling" problem,
if we are going to limit profanity's buffer size by amount of lines as
opposed to the limitation based on the amount of message which is currently
used.

Before adding a limitation by amount of lines, careful consideration is
required, as some users don't use history and their temporary message
history can be cut to minimal limit because of 1 long received/sent message.

Underscrolling problem was fixed in a previous commit
d7e46d64fe
Short recap of the problem:
Despite user scrolling to top/bottom of history,
factual position is offset from the intended location

Another feature of this commit is a minor change which adds fetching
message stanza IDs from the DB. It allows correcting messages
fetched from history.

Fixes https://github.com/profanity-im/profanity/issues/1934
2023-12-21 17:32:30 +01:00
.builds Upgrade to OpenBSD 7.0 in CI 2021-12-24 13:49:07 +01:00
.github Ensure instances of auto types are initialized 2023-11-06 22:22:35 +01:00
apidocs fixed typo from "the Yes" to "to YES" 2022-02-03 14:25:25 +05:30
docs Add ALT+UP/DOWN/mouse wheel scroll support 2023-11-28 15:04:53 +01:00
icons better, final icons 2016-03-09 12:55:57 +01:00
src Fix overscrolling issue 2023-12-21 17:32:30 +01:00
tests Improve const correctness 2023-12-12 18:27:09 +01:00
themes Improve MUC title behaviour for roster, statusbar, and titlebar 2023-10-05 18:16:04 -06:00
.clang-format auto-format 2022-02-01 15:01:28 +01:00
.codespellrc Fix typos and update codespell configuration 2023-04-03 13:25:25 +01:00
.git-blame-ignore-revs Add another formatting commit to git blame ignore 2023-04-14 21:46:27 +02:00
.gitignore Minor changes 2023-10-04 17:02:10 +02:00
bootstrap.sh Add Travis CI tests for Arch, Debian and OSX/macOS 2019-06-06 13:58:26 +02:00
Brewfile Switch from Travis CI to GitHub Actions 2020-12-17 15:09:25 +01:00
CHANGELOG Fix typos, correct grammar 2023-10-14 18:07:52 +02:00
ci-build.sh Make qrencode optional and add to CI 2022-05-30 18:06:13 +02:00
configure-debug debug build: build without -fsanitize=address 2021-03-24 17:20:54 +01:00
configure.ac Start new cycle 2023-08-03 08:06:19 +02:00
CONTRIBUTING.md docs: Add info about different clang-format versions 2023-04-15 11:50:57 +02:00
COPYING License: use upstream license file 2021-08-26 00:30:55 +00:00
Dockerfile.arch Make qrencode optional and add to CI 2022-05-30 18:06:13 +02:00
Dockerfile.debian Make qrencode optional and add to CI 2022-05-30 18:06:13 +02:00
Dockerfile.fedora ci: fedora - remove python2 2022-08-18 15:03:38 +02:00
Dockerfile.tumbleweed ci: enable tumbleweed 2022-08-18 15:02:36 +02:00
Dockerfile.ubuntu Make qrencode optional and add to CI 2022-05-30 18:06:13 +02:00
LICENSE.txt Update copyright years 2019-04-24 01:08:38 +02:00
Makefile.am Add url support (downloading) to /plugins install 2023-05-16 15:57:07 +02:00
prof.supp Update Valgrind suppressions 2023-12-12 18:27:11 +01:00
profanity.doap doap: add xep0373 2023-08-23 10:49:57 +02:00
profrc.example Add support for offline MUC notifications 2022-04-23 02:42:23 +02:00
README.md readme: format btc 2023-08-25 20:11:26 +02:00
RELEASE_GUIDE.md Add 0.14.0 release to doap and fix links 2023-08-04 08:37:54 +02:00
SECURITY.md docs: Fix formatting in SECURITY.md 2023-04-14 13:16:32 +02:00
SPONSORS.md Correct ML URL in SPONSORS.md 2023-03-10 11:20:59 +01:00
theme_template Make 'scrolled' themeable 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.

If you like Profanity consider becoming a sponsor or donate some money.

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.

Feel free to follow us on twitter, join our mailing list and/or MUC.

Installation

Our user guide contains an install section and a section for building from source yourself.

Donations

We would highly appreciate it if you support us via GitHub Sponsors. Especially if you make feature requests or need help using Profanity. Sponsoring enables us to spend time on Profanity.

An alternative way to support us would be to ask for our IBAN or use Bitcoin: bc1qx265eat7hfasqkqmk9qf38delydnrnuvzhzy0x.

Issues backed by a sponsor will be tagged with the sponsored label. Feature requests that we consider out of scope, either because of interest or because of time needed to implement them, will be marked with the unfunded label.

Another way to sponsor us or get an issue solved is to comment on an issue that you are willing to sponsor it.

Tasks from our sponsors will be tackled first.

Thank you! <3

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 have 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

URL: https://profanity-im.github.io

Repo: https://github.com/profanity-im/profanity-im.github.io

Blog

URL: https://profanity-im.github.io/blog

Repo: https://github.com/profanity-im/blog

Mailinglist

Mailing List: https://lists.posteo.de/listinfo/profanity

Chatroom

MUC: profanity@rooms.dismail.de

Plugins

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