]> git.eshelyaron.com Git - emacs.git/commit
Improve multi-window erc-keep-place-indicator-mode
authorF. Jason Park <jp@neverwas.me>
Sat, 23 Dec 2023 20:46:33 +0000 (12:46 -0800)
committerEshel Yaron <me@eshelyaron.com>
Tue, 2 Jan 2024 07:21:22 +0000 (08:21 +0100)
commit677a4aa9a017220bd1d98fba906af780c6d351e5
tree2746015cf5bf2ec7a07fbcd1d47c4a7ac0383876
parente192a9890dbddff2cf1c5b0c4b3bbef2ac985d80
Improve multi-window erc-keep-place-indicator-mode

* lisp/erc/erc-goodies.el (erc-keep-place-indicator-follow): Describe
condition causing an indicator update.
(erc--keep-place-indicator-on-window-configuration-change,
erc--keep-place-indicator-on-window-buffer-change): Rename former to
latter, add required WINDOW parameter, and don't move indicator if
buffer appears in multiple windows.  Also, don't bother checking
whether either buffer is a mini because the manual says window change
functions don't run for minibuffer replacements.
(erc--keep-place-indicator-setup): Hook on
`window-buffer-change-functions' instead of
`window-configuration-change-hook'.
(erc-keep-place-mode, erc-keep-place-disable): Remove member from
`window-buffer-change-functions' instead of
`window-configuration-change-hook'.
(erc-keep-place): Use `visible' FRAME arg of `get-buffer-window'.
Don't twiddle `window-prev-buffers' when
`erc-keep-place-indicator-mode' is non-nil.  This feature was
originally introduced by bug#59943.
* test/lisp/erc/erc-goodies-tests.el
(erc-goodies-tests--assert-kp-indicator-on,
erc-goodies-tests--assert-kp-indicator-off): Update hook name.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el: New file.
* test/lisp/erc/resources/keep-place/follow.eld: New file.

(cherry picked from commit 65735efdca017f2ec0aa1022b7e82f68fbe0084d)
lisp/erc/erc-goodies.el
test/lisp/erc/erc-goodies-tests.el
test/lisp/erc/erc-scenarios-keep-place-indicator.el [new file with mode: 0644]
test/lisp/erc/resources/keep-place/follow.eld [new file with mode: 0644]