Function: follow-redisplay
follow-redisplay is a byte-compiled function defined in follow.el.gz.
Signature
(follow-redisplay &optional WINDOWS WIN PRESERVE-WIN)
Documentation
Reposition the WINDOWS around WIN.
Should point be too close to the roof we redisplay everything from the top. WINDOWS should contain a list of windows to redisplay; it is assumed that WIN is a member of the list. Should WINDOWS be nil, the windows displaying the same buffer as WIN, in the current frame, are used. Should WIN be nil, the selected window is used. If PRESERVE-WIN is non-nil, keep WIN itself unchanged while repositioning the other windows.
Source Code
;; Defined in /usr/src/emacs/lisp/follow.el.gz
(defun follow-redisplay (&optional windows win preserve-win)
"Reposition the WINDOWS around WIN.
Should point be too close to the roof we redisplay everything
from the top. WINDOWS should contain a list of windows to
redisplay; it is assumed that WIN is a member of the list.
Should WINDOWS be nil, the windows displaying the
same buffer as WIN, in the current frame, are used.
Should WIN be nil, the selected window is used.
If PRESERVE-WIN is non-nil, keep WIN itself unchanged while
repositioning the other windows."
(or win (setq win (selected-window)))
(or windows (setq windows (follow-all-followers win)))
;; Calculate the start of the first window.
(let* ((old-win-start (window-start win))
(try-first-start (follow-estimate-first-window-start
windows win old-win-start))
(try-win-start (follow-calc-win-start
windows try-first-start win))
(start (cond ((= try-win-start old-win-start)
(follow-debug-message "exact")
try-first-start)
((< try-win-start old-win-start)
(follow-debug-message "above")
(follow-calculate-first-window-start-from-above
windows try-first-start win old-win-start))
(t
(follow-debug-message "below")
(follow-calculate-first-window-start-from-below
windows try-first-start win old-win-start)))))
(dolist (w windows)
(unless (and preserve-win (eq w win))
(set-window-start w start))
(setq start (car (follow-calc-win-end w))))
(setq follow-start-end-invalid nil)))