diff options
Diffstat (limited to 'lisp/gnus/gnus-win.el')
-rw-r--r-- | lisp/gnus/gnus-win.el | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 40c5b42d45f..e6906e99bb2 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -270,7 +270,7 @@ See the Gnus manual for an explanation of the syntax used.") (error "Invalid buffer type: %s" type)) (let ((buf (gnus-get-buffer-create (gnus-window-to-buffer-helper buffer)))) - (when (buffer-name buf) + (when (buffer-live-p buf) (cond ((eq buf (window-buffer (selected-window))) (set-buffer buf)) @@ -430,20 +430,13 @@ See the Gnus manual for an explanation of the syntax used.") (defun gnus-delete-windows-in-gnusey-frames () "Do a `delete-other-windows' in all frames that have Gnus windows." (let ((buffers (gnus-buffers))) - (mapcar - (lambda (frame) - (unless (eq (cdr (assq 'minibuffer - (frame-parameters frame))) - 'only) - (select-frame frame) - (let (do-delete) - (walk-windows - (lambda (window) - (when (memq (window-buffer window) buffers) - (setq do-delete t)))) - (when do-delete - (delete-other-windows))))) - (frame-list)))) + (dolist (frame (frame-list)) + (unless (eq (frame-parameter frame 'minibuffer) 'only) + (select-frame frame) + (when (get-window-with-predicate + (lambda (window) + (memq (window-buffer window) buffers))) + (delete-other-windows)))))) (defun gnus-all-windows-visible-p (split) "Say whether all buffers in SPLIT are currently visible. @@ -491,11 +484,10 @@ should have point." (nth 1 (window-edges window))) (defun gnus-remove-some-windows () - (let ((buffers (gnus-buffers)) - buf bufs lowest-buf lowest) + (let (bufs lowest-buf lowest) (save-excursion ;; Remove windows on all known Gnus buffers. - (while (setq buf (pop buffers)) + (dolist (buf (gnus-buffers)) (when (get-buffer-window buf) (push buf bufs) (pop-to-buffer buf) @@ -506,8 +498,8 @@ should have point." (when lowest-buf (pop-to-buffer lowest-buf) (set-buffer nntp-server-buffer)) - (mapcar (lambda (b) (delete-windows-on b t)) - (delq lowest-buf bufs))))) + (dolist (b (delq lowest-buf bufs)) + (delete-windows-on b t))))) (defun gnus-get-buffer-window (buffer &optional frame) "Return a window currently displaying BUFFER, or nil if none. |