From 134ec9413a86bc97320548cba3dcfda286ebd938 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Tue, 30 Jul 2024 15:35:44 +0200 Subject: small adjustments to point placement with (un)folding --- lisp/mastodon-tl.el | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index b9a5535..ad8cc1a 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -1597,24 +1597,27 @@ Folding decided by `mastodon-tl--fold-toots-at-length'." ;; `replace-region-contents' is much to slow, our hack from fedi.el is ;; much simpler and much faster (let ((beg (car range)) - (end (cdr range))) + (end (cdr range)) + (last-point (point))) (save-excursion (goto-char beg) (delete-region beg end) (delete-char 1) ;; prevent newlines accumulating (mastodon-tl--toot toot nil nil nil (when (not fold) :unfolded))) - ;; move point to line where text formerly ended: - (unless fold - (goto-char end) - (beginning-of-line))))))) + (cond ((or fold byline) + ;; if folding, or if point was at byline already: + ;; FIXME: ideally we could goto last-point if folding but + ;; point was not in now hidden area) + (mastodon-tl--goto-next-item)) + (t + (goto-char last-point) + (beginning-of-line)))))))) (defun mastodon-tl--fold-post () "Fold post at point, if it is too long." (interactive) - (mastodon-tl--unfold-post :fold) - ;; inserting leaves us at beg of toot, so let's leave point at byline: - (mastodon-tl--goto-next-item)) + (mastodon-tl--unfold-post :fold)) ;; from mastodon-alt.el: (defun mastodon-tl--toot-for-stats (&optional toot) -- cgit v1.2.3