summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorF. Jason Park <jp@neverwas.me>2023-12-30 17:09:17 -0800
committerF. Jason Park <jp@neverwas.me>2023-12-31 06:56:32 -0800
commit4eda77ed335f982460f818ae1b8619cbd32ba77d (patch)
tree7ff10e095e6ffd0af9d13a110790302d1faf5d9d
parent91f316d293150c6d025c61949c24fc07136fb1fd (diff)
downloademacs-4eda77ed335f982460f818ae1b8619cbd32ba77d.tar.gz
Fix regression in erc-keep-place-indicator-mode
* lisp/erc/erc-goodies.el (erc-keep-place): Revert portion of 65735efdca0 "Improve multi-window erc-keep-place-indicator-mode" that skipped modifying `window-prev-buffers' when the indicator's minor mode was enabled. * test/lisp/erc/erc-scenarios-keep-place-indicator.el: Modify test to assert that point's place is preserved after switching away from a buffer with the indicator enabled. * test/lisp/erc/resources/keep-place/follow.eld: Update. This feature was originally introduced by bug#59943.
-rw-r--r--lisp/erc/erc-goodies.el3
-rw-r--r--test/lisp/erc/erc-scenarios-keep-place-indicator.el9
-rw-r--r--test/lisp/erc/resources/keep-place/follow.eld5
3 files changed, 14 insertions, 3 deletions
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index 9d385b628dc..a0502a3b75c 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -471,8 +471,7 @@ For use with `keep-place-indicator' module."
;; if `switch-to-buffer-preserve-window-point' is set,
;; we cannot rely on point being saved, and must commit
;; it to window-prev-buffers.
- (when (and switch-to-buffer-preserve-window-point
- (not erc-keep-place-indicator-mode))
+ (when switch-to-buffer-preserve-window-point
(dolist (frame (frame-list))
(walk-window-tree
(lambda (window)
diff --git a/test/lisp/erc/erc-scenarios-keep-place-indicator.el b/test/lisp/erc/erc-scenarios-keep-place-indicator.el
index 7566288066e..8ebef5404c1 100644
--- a/test/lisp/erc/erc-scenarios-keep-place-indicator.el
+++ b/test/lisp/erc/erc-scenarios-keep-place-indicator.el
@@ -107,6 +107,7 @@
(switch-to-buffer "#spam") ; lower follows, speaks to sync
(erc-scenarios-common-say "two")
(funcall expect 10 "<bob> Cause they take")
+ (goto-char (point-max))
;; Upper switches back first, finds indicator gone.
(other-window 1)
@@ -126,7 +127,13 @@
(should (looking-back (rx "you can cog")))
(should (= (pos-bol) (window-start)))
(should (= (overlay-start erc--keep-place-indicator-overlay)
- (pos-bol))))))
+ (pos-bol)))))
+
+ (ert-info ("description")
+ (erc-send-input-line "#spam" "three")
+ (save-excursion (erc-d-t-search-for 10 "Ready"))
+ (switch-to-buffer "#spam")
+ (should (< (point) erc-input-marker))))
(erc-keep-place-mode -1)
(erc-scrolltobottom-mode -1)))
diff --git a/test/lisp/erc/resources/keep-place/follow.eld b/test/lisp/erc/resources/keep-place/follow.eld
index e857c17175d..db9352d93be 100644
--- a/test/lisp/erc/resources/keep-place/follow.eld
+++ b/test/lisp/erc/resources/keep-place/follow.eld
@@ -71,3 +71,8 @@
(0.03 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #chan :alice: No egma, no riddle, no l'envoy; no salve in the mail, sir. O! sir, plantain, a plain plantain: no l'envoy, no l'envoy: no salve, sir, but a plantain.")
(0.03 ":alice!~u@2q6ysndq32az6.irc PRIVMSG #chan :Signior Iachimo will not from it. Pray, let us follow 'em."))
+
+((privmsg 10 "PRIVMSG #spam :three")
+ ;; Third check point.
+ (0.01 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #spam :Moved.")
+ (0.01 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #chan :Ready."))