Function: window--min-delta-1

window--min-delta-1 is a byte-compiled function defined in window.el.gz.

Signature

(window--min-delta-1 WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL NOUP PIXELWISE)

Documentation

Internal function for window-min-delta.

Source Code

;; Defined in /usr/src/emacs/lisp/window.el.gz
(defun window--min-delta-1 (window delta &optional horizontal ignore trail noup pixelwise)
  "Internal function for `window-min-delta'."
  (if (not (window-parent window))
      ;; If we can't go up, return zero.
      0
    ;; Else try to find a non-fixed-size sibling of WINDOW.
    (let* ((parent (window-parent window))
	   (sub (window-child parent)))
      (catch 'done
	(if (window-combined-p sub horizontal)
	    ;; In an iso-combination throw DELTA if we find at least one
	    ;; child window and that window is either not fixed-size or
	    ;; we can ignore fixed-sizeness.
	    (let ((skip (eq trail 'after)))
	      (while sub
		(cond
		 ((eq sub window)
		  (setq skip (eq trail 'before)))
		 (skip)
		 ((window-size-fixed-p sub horizontal ignore))
		 (t
		  ;; We found a non-fixed-size child window.
		  (throw 'done delta)))
		(setq sub (window-right sub))))
	  ;; In an ortho-combination set DELTA to the minimum value by
	  ;; which other child windows can shrink.
	  (while sub
	    (unless (eq sub window)
	      (setq delta
		    (min delta
			 (max (- (window-size sub horizontal pixelwise 'ceiling)
				 (window-min-size
				  sub horizontal ignore pixelwise))
			      0))))
	    (setq sub (window-right sub))))
	(if noup
	    delta
	  (window--min-delta-1
	   parent delta horizontal ignore trail nil pixelwise))))))