Function: gnus-all-windows-visible-p

gnus-all-windows-visible-p is a byte-compiled function defined in gnus-win.el.gz.

Signature

(gnus-all-windows-visible-p SPLIT)

Documentation

Say whether all buffers in SPLIT are currently visible.

In particular, the value returned will be the window that should have point.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-win.el.gz
(defun gnus-all-windows-visible-p (split)
  "Say whether all buffers in SPLIT are currently visible.
In particular, the value returned will be the window that
should have point."
  (let ((stack (list split))
	(all-visible t)
	type buffer win buf)
    (while (and (setq split (pop stack))
		all-visible)
      (when (consp (car split))
	(push 1.0 split)
	(push 'vertical split))
      ;; The SPLIT might be something that is to be evalled to
      ;; return a new SPLIT.
      (while (and (not (assq (car split) gnus-window-to-buffer))
		  (symbolp (car split)) (fboundp (car split)))
	(setq split (eval split t)))

      (setq type (elt split 0))
      (cond
       ;; Nothing here.
       ((null split) t)
       ;; A buffer.
       ((not (memq type '(horizontal vertical frame)))
	(setq buffer (cond ((stringp type) type)
			   (t (cdr (assq type gnus-window-to-buffer)))))
	(unless buffer
	  (error "Invalid buffer type: %s" type))
	(if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer)))
		 (buffer-live-p buf)
		 (setq win (gnus-get-buffer-window buf t)))
	    (if (memq 'point split)
		(setq all-visible win))
	  (setq all-visible nil)))
       (t
	(when (eq type 'frame)
	  (setq gnus-frame-split-p t))
	(setq stack (append (cddr split) stack)))))
    (unless (eq all-visible t)
      all-visible)))