unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#50220: 27.2; follow.el: follow-recenter does not work correctly if invoked in a follow window before the middle follow window.
@ 2021-08-27  0:39 Noah Evans
  2021-08-27  1:43 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 2+ messages in thread
From: Noah Evans @ 2021-08-27  0:39 UTC (permalink / raw)
  To: 50220

[-- Attachment #1: Type: text/plain, Size: 1623 bytes --]

In GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Arch Linux

In follow mode, 'follow-mode-recenter` with no argument should center
the middle window around point. It works fine if it is used in the
middle window or a window after it, but if it is used in a window before
middle the post-command-hook moves the window back.

Reproduce:
Find a long file.
Split the window vertically two or more times.
M-x follow-mode
Go to the leftmost window and do C-c . C-l

Patch to fix:

From 65c6ccae67a5b2744711c3bfae2ebff3e530c2c1 Mon Sep 17 00:00:00 2001
From: Noah Evans <noah@nevans.me>
Date: Thu, 26 Aug 2021 20:27:45 -0400
Subject: [PATCH] follow.el: Fix bug#XXXXX in follow-recenter.

When follow-recenter is called in a follow window before the middle
follow window, the post-command-hook undoes the recentering.

* list/follow.el (follow-recenter): Set
follow-internal-force-redisplay when dest point is before start of
middle window.
---
lisp/follow.el | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lisp/follow.el b/lisp/follow.el
index dde140d0fd5..b64f4cb7348 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -858,8 +858,11 @@ from the bottom."
(windows (follow-all-followers))
(win (nth (/ (- (length windows) 1) 2) windows)))
(select-window win)
- (goto-char dest)
- (recenter))))
+ (let ((win-s (window-start)))
+ (goto-char dest)
+ (recenter)
+ (when (< dest win-s)
+ (setq follow-internal-force-redisplay t))))))

(defun follow-redraw ()
--
2.33.0

[-- Attachment #2: Type: text/html, Size: 27193 bytes --]

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#50220: 27.2; follow.el: follow-recenter does not work correctly if invoked in a follow window before the middle follow window.
  2021-08-27  0:39 bug#50220: 27.2; follow.el: follow-recenter does not work correctly if invoked in a follow window before the middle follow window Noah Evans
@ 2021-08-27  1:43 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2021-08-27  1:43 UTC (permalink / raw)
  To: Noah Evans; +Cc: 50220

Noah Evans <noah@nevans.me> writes:

> In follow mode, 'follow-mode-recenter` with no argument should center
> the middle window around point. It works fine if it is used in the
> middle window or a window after it, but if it is used in a window before
> middle the post-command-hook moves the window back.
>
> Reproduce:
> Find a long file.
> Split the window vertically two or more times.
> M-x follow-mode
> Go to the leftmost window and do C-c . C-l

Thanks; applied to Emacs 28.  (I've never used follow-mode before, but
your patch does indeed seem to fix the problem with `C-c . C-l'.)

This change was small enough to apply without assigning copyright to the
FSF, but for future patches you want to submit, it might make sense to
get the paperwork started now, so that subsequent patches can be applied
speedily. Would you be willing to sign such paperwork?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-27  1:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-27  0:39 bug#50220: 27.2; follow.el: follow-recenter does not work correctly if invoked in a follow window before the middle follow window Noah Evans
2021-08-27  1:43 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).