]> git.eshelyaron.com Git - emacs.git/commitdiff
(pop-up-frames): Add choice graphic-only.
authorMartin Rudalics <rudalics@gmx.at>
Thu, 9 Oct 2008 08:12:41 +0000 (08:12 +0000)
committerMartin Rudalics <rudalics@gmx.at>
Thu, 9 Oct 2008 08:12:41 +0000 (08:12 +0000)
(display-buffer): When pop-up-frames equals graphic-only do
not pop up new frame on text-only terminals.  (Bug#1061)

lisp/ChangeLog
lisp/window.el

index 102713618ecdc4e3a537f0dd87fc3a75491f68df..cf7567fb46fc82e3bed96ee9805751ae92e1e393 100644 (file)
@@ -1,3 +1,9 @@
+2008-10-09  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (pop-up-frames): Add choice graphic-only.
+       (display-buffer): When pop-up-frames equals graphic-only do
+       not pop up new frame on text-only terminals.  (Bug#1061)
+
 2008-10-09  Dan Nicolaescu  <dann@ics.uci.edu>
 
        * vc-cvs.el (vc-cvs-dir-stay-local): New variable.
index 5afe1811dda2b1be785dcb6784c026f0b7e788d7..e69634de68c2665835bc472c01e4dcb54f90a69d 100644 (file)
@@ -710,8 +710,15 @@ See also `same-window-buffer-names'."
   :group 'windows)
 
 (defcustom pop-up-frames nil
-  "Non-nil means `display-buffer' should make a separate frame."
-  :type 'boolean
+  "Whether `display-buffer' should make a separate frame.
+If nil, never make a seperate frame.
+If the value is `graphic-only', make a separate frame
+on graphic displays only.
+Any other non-nil value means always make a separate frame."
+  :type '(choice
+         (const :tag "Never" nil)
+         (const :tag "On graphic displays only" graphic-only)
+         (const :tag "Always" t))
   :group 'windows)
 
 (defcustom display-buffer-reuse-frames nil
@@ -931,7 +938,8 @@ A specific frame - consider windows on that frame only.
 
 nil - consider windows on the selected frame \(actually the
 last non-minibuffer frame\) only.  If, however, either
-`display-buffer-reuse-frames' or `pop-up-frames' is non-nil,
+`display-buffer-reuse-frames' or `pop-up-frames' is non-nil
+\(non-nil and not graphic-only on a text-only terminal),
 consider all visible or iconified frames."
   (interactive "BDisplay buffer:\nP")
   (let* ((can-use-selected-window
@@ -945,6 +953,11 @@ consider all visible or iconified frames."
                     buffer-or-name
                   (get-buffer buffer-or-name)))
         (name-of-buffer (buffer-name buffer))
+        ;; On text-only terminals do not pop up a new frame when
+        ;; `pop-up-frames' equals graphic-only.
+        (use-pop-up-frames (if (eq pop-up-frames 'graphic-only)
+                               (display-graphic-p)
+                             pop-up-frames))
         ;; `frame-to-use' is the frame where to show `buffer' - either
         ;; the selected frame or the last nonminibuffer frame.
         (frame-to-use
@@ -967,7 +980,8 @@ consider all visible or iconified frames."
       ;; If the buffer's name tells us to use the selected window do so.
       (window--display-buffer-2 buffer (selected-window)))
      ((let ((frames (or frame
-                       (and (or pop-up-frames display-buffer-reuse-frames
+                       (and (or use-pop-up-frames
+                                display-buffer-reuse-frames
                                 (not (last-nonminibuffer-frame)))
                             0)
                        (last-nonminibuffer-frame))))
@@ -983,7 +997,7 @@ consider all visible or iconified frames."
             (when pars
               (funcall special-display-function
                        buffer (if (listp pars) pars))))))
-     ((or pop-up-frames (not frame-to-use))
+     ((or use-pop-up-frames (not frame-to-use))
       ;; We want or need a new frame.
       (window--display-buffer-2
        buffer (frame-selected-window (funcall pop-up-frame-function))))