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)))