Commit graph

93 commits

Author SHA1 Message Date
Adam Porter
f792af5dd9 Change/Fix: Read receipts
Squashed commit of the following:

commit ccc54b7910228495983d9ffc8e7b491baafead62
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Sep 15 16:21:31 2022 -0500

    Change/Fix: Read receipts

    Read receipts are now updated via a global idle timer that iterates
    over visible room buffers.  This avoids the nasty, inexplicable race
    condition that sometimes happened when using window-scroll-functions,
    which could cause the functions to be called infinitely, sometimes
    making Emacs unresponsive or even causing it to crash.

    Also, a room's read receipt is now set to the last completely visible
    event (i.e. if an event is only partially displayed, it's not
    considered read).

commit 3569c1d2b5251061eb1415a7849039ff0f6f3c2a
Author: Adam Porter <adam@alphapapa.net>
Date:   Thu Sep 15 15:23:54 2022 -0500

    WIP: See comment

    Well, this reproduces the problem fairly reliably in my config in
    that, after connecting, it begins calling the
    ement-room-start-read-receipt-timer function infinitely.  Sometimes I
    can interrupt it by selecting one or another room window and scrolling
    it or moving point in it.  I have no explanation for why the function
    is called infinitely; the only entry point into it is in the room
    buffers' local values of window-scroll-functions.

    I'm going to try another approach, that of changing the global value
    of the variable and having the function iterate over visible windows.
2022-09-15 16:39:20 -05:00
Adam Porter
04d2b60d79 Change/Fix: (ement-room-browse-url) Room-only links 2022-09-15 12:49:18 -05:00
Adam Porter
3ed946e73b Meta: v0.2-pre 2022-09-15 12:40:59 -05:00
Adam Porter
19d8d08621 Release: v0.1.4 2022-09-15 12:40:04 -05:00
Adam Porter
338b99b61e Docs: Fix badge 2022-09-12 03:48:00 -05:00
Adam Porter
008915bc2e Docs: Update readme, fix Info directory 2022-09-12 03:40:19 -05:00
Adam Porter
5249e49a3f Meta: v0.1.4-pre 2022-09-12 03:32:25 -05:00
Adam Porter
9e3c7fe07d Release: v0.1.3 2022-09-11 14:32:16 -05:00
Adam Porter
3563d9447d Change/Fix: (ement-room-mode) Disable use of window-scroll-functions
Disabling this because of some weird behavior.  It seems like a race
condition exists in which the window-scroll-functions are called,
causing the read receipt to get sent, followed by the read-receipt
being updated, causing the window-scroll-functions to be called again
before the updated receipt is displayed in the buffer, which can cause
an infinite loop, which can even exhaust the Lisp stack and cause
Emacs to freeze (without 100% CPU usage).  At least, that's the best
explanation I have so far--it's very weird.  Until it's solved, we'll
have to do without sending read receipts.  Maybe
window-scroll-functions isn't suitable for this, even though it seems
ideal in theory.  Maybe instead we should use a simple idle timer that
iterates over windows, or something like that.
2022-09-11 14:31:55 -05:00
Adam Porter
b07b7c0da1 Change/Fix: (ement-room-read-receipt-timer) When read receipt is unseen
- Move function called by timer to a named function.

- Send read receipt even if its position is outside the range of
retrieved events.  Otherwise, it could be so far back that it never
gets updated, which doesn't seem useful.  The fully-read marker
remains unmoved until the user gets to the end of the room's events
and marks them all as read, which seems right and useful.
2022-09-09 16:03:58 -05:00
Adam Porter
0d71dfbe6f Fix: (ement-room-start-read-receipt-timer) Set timer in variable 2022-09-09 15:17:52 -05:00
Adam Porter
46157d1126 Meta: v0.1.3-pre 2022-09-09 15:13:22 -05:00
Adam Porter
28cb94cfb5 Release: v0.1.2 2022-09-09 14:12:46 -05:00
Adam Porter
aeba07b658 Docs: Mention availability in Debian, Guix, etc. 2022-09-09 13:10:38 -05:00
Adam Porter
79e8cc51f1 Fix: (ement-notify) Ensure D-Bus is available
Adds (ement-notify-dbus-p).

Fixes #83.  Thanks to Tassilo Horn (@tsdh) for reporting and providing
the predicate code.

Reported-by: Tassilo Horn <tsdh@gnu.org>
Suggested-by: Tassilo Horn <tsdh@gnu.org>
Co-authored-by: Tassilo Horn <tsdh@gnu.org>
2022-09-09 12:44:46 -05:00
Adam Porter
068ebc1209 Docs: Add changelog entry 2022-09-09 12:18:24 -05:00
Adam Porter
5edc3b77a8 Meta: v0.1.2-pre 2022-09-09 12:10:30 -05:00
Adam Porter
d13cc0c4de Docs: Update README
This now correctly exports to an Info manual using ox-texinfo, without
errors.
2022-09-09 11:45:40 -05:00
Adam Porter
7f3756359b Fix: (ement-room-list-avatars) Use display-images-p
This is more correct than checking display-graphic-p.
2022-09-08 10:31:31 -05:00
Adam Porter
43ab8f2e09 Fix: (ement-room-scroll-up-mark-read) Select correct room window 2022-09-08 09:55:52 -05:00
Adam Porter
96f3c22cca Meta: 0.1.1-pre 2022-09-08 09:54:38 -05:00
Adam Porter
25d7d43336 Docs: Fix ELPA build error
Since the linked screenshots are excluded from the tarball, the Org
export failed due to broken links.  This should fix it...
2022-09-05 04:51:08 -05:00
Adam Porter
fcbf1a55e8 Release: 0.1 2022-09-02 07:44:17 -05:00
Adam Porter
ecea501f2d Docs: Mention drag-and-drop 2022-07-01 08:57:20 -05:00
Adam Porter
cf66b9d957 Docs: Remove obsolete plz.el installation instructions
Since plz.el is now on ELPA.
2022-06-23 02:10:09 -05:00
Adam Porter
529cca4d61 Change: Move per-room displaynames into room struct
This avoids circular data structures (I think this is the only case of
it), which should prevent the infinite-loop/out-of-memory situations
when Emacs prints one in an error or backtrace and print-circle is
nil.

Fixes #41.
2022-05-29 10:47:39 -05:00
hochata
bf2f0862d1 Correcting pantalaimon connection command 2022-05-21 12:06:40 -05:00
Adam Porter
217fe22505 Add/Change: list-members, et al.
Add ement-list-members, along with ement--get-joined-members, and use
it in member completion.  Also, add ement-singly macro.
2022-05-12 18:14:23 -05:00
Adam Porter
4b94c46c5c Change: Rename ement-invite to ement-invite-user 2022-05-07 09:44:16 -05:00
Adam Porter
9b3756c796 Add/Change: Sync bindings with Transient menu, update readme 2022-05-07 09:44:16 -05:00
Adam Porter
e0247f0d92 Add: (ement-room-transient) 2022-05-06 20:46:27 -05:00
Adam Porter
be5d68cd2c Add/Change: (ement-room-send-file)
Also, move most logic from ement-room-send-image to it.
2022-05-02 06:40:08 -05:00
Adam Porter
fcf9ad92b4 Add: (ement-room-occur) et al. 2022-04-29 16:04:27 -05:00
Adam Porter
b956d368ff Add: (ement-ignore-user) 2022-04-12 09:37:15 -05:00
Adam Porter
2b191be1c1 Add: (ement-tag-room) command 2022-04-09 17:19:58 -05:00
Adam Porter
7246d03d24 Add: (ement-send-direct-message) 2022-03-25 23:04:01 -05:00
Adam Porter
62a5d4a2d1 Add: (ement-forget-room) 2022-03-24 17:24:06 -05:00
Adam Porter
b09e8ca95e Add: (ement-invite, ement-create-room, ement-put-account-data) 2022-03-22 18:15:33 -05:00
Adam Porter
325c679844 Docs: Recommend enabling print-circle 2022-03-20 17:33:28 -05:00
Adam Porter
df72824790 Docs: Mention Matrix spec 2021-09-24 10:24:23 +00:00
Adam Porter
7853fc0b70 Docs: Mention FSF CA 2021-09-24 10:24:23 +00:00
Adam Porter
870e3fbbfa Docs: Update readme 2021-09-16 00:28:32 +00:00
Adam Porter
10d6b83ecc Docs: Capitalize title 2021-08-24 03:21:46 -05:00
Adam Porter
5862372a2e Meta: Update logo
This strikes a balance between the Emacs "E" looking like an E and an
M, bridging the gap between "Emacs" and "Matrix" (or that's the idea,
anyway).
2021-08-23 21:39:01 -05:00
Adam Porter
eb4197244b Add: Multi-session support 2021-08-23 19:16:59 -05:00
Adam Porter
e789f9cb86 Add: Complete members and rooms at point 2021-08-18 11:02:27 -05:00
Adam Porter
6071951d99 Docs: Mention chat room 2021-08-18 09:51:33 -05:00
Adam Porter
561c5f3431 Docs: Mention ement-room-compose-org 2021-08-17 08:31:09 -05:00
Adam Porter
97425045ae Add: Sending emotes 2021-08-17 08:31:09 -05:00
Adam Porter
eb6f58e52e Docs: New logo 2021-08-13 10:48:13 -05:00