Function: window--pixel-to-total-1

window--pixel-to-total-1 is a byte-compiled function defined in window.el.gz.

Signature

(window--pixel-to-total-1 WINDOW HORIZONTAL CHAR-SIZE)

Documentation

Subroutine of window--pixel-to-total.

Source Code

;; Defined in /usr/src/emacs/lisp/window.el.gz
(defun window--pixel-to-total-1 (window horizontal char-size)
  "Subroutine of `window--pixel-to-total'."
  (let ((child (window-child window)))
    (if (window-combination-p window horizontal)
	;; In an iso-combination distribute sizes proportionally.
	(let ((remainder (window-new-total window))
	      size best-child rem best-rem)
	  ;; Initialize total sizes to each child's floor.
	  (while child
	    (setq size (max (/ (window-size child horizontal t) char-size) 1))
	    (set-window-new-total child size)
	    (setq remainder (- remainder size))
	    (setq child (window-next-sibling child)))
	  ;; Distribute remainder.
	  (while (> remainder 0)
	    (setq child (window-last-child window))
	    (setq best-child nil)
	    (setq best-rem 0)
	    (while child
	      (when (and (<= (window-new-total child)
			     (/ (window-size child horizontal t) char-size))
			 (> (setq rem (% (window-size child horizontal t)
					 char-size))
			    best-rem))
		   (setq best-child child)
		   (setq best-rem rem))
	      (setq child (window-prev-sibling child)))
	    ;; We MUST have a best-child here.
	    (set-window-new-total best-child 1 t)
	    (setq remainder (1- remainder)))
	  ;; Recurse.
	  (setq child (window-child window))
	  (while child
	    (window--pixel-to-total-1 child horizontal char-size)
	    (setq child (window-next-sibling child))))
      ;; In an ortho-combination assign new sizes directly.
      (let ((size (window-new-total window)))
	(while child
	  (set-window-new-total child size)
	  (window--pixel-to-total-1 child horizontal char-size)
	  (setq child (window-next-sibling child)))))))