+(eval-and-compile
+ (cond
+ ((fboundp 'frames-on-display-list)
+ (defalias 'gnus-frames-on-display-list 'frames-on-display-list))
+ ((and (featurep 'xemacs) (fboundp 'frame-device))
+ (defun gnus-frames-on-display-list ()
+ (apply 'filtered-frame-list 'identity (list (frame-device nil)))))
+ (t
+ (defalias 'gnus-frames-on-display-list 'frame-list))))
+
+(defun gnus-get-buffer-window (buffer &optional frame)
+ (cond ((and (null gnus-use-frames-on-any-display)
+ (memq frame '(t 0 visible)))
+ (car
+ (let ((frames (gnus-frames-on-display-list)))
+ (gnus-remove-if (lambda (win) (not (memq (window-frame win)
+ frames)))
+ (get-buffer-window-list buffer nil frame)))))
+ (t
+ (get-buffer-window buffer frame))))
+