Additional fixes in handling of buffer display specifiers.
authorMartin Rudalics <rudalics@gmx.at>
Sat, 18 Jun 2011 14:23:14 +0000 (16:23 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Sat, 18 Jun 2011 14:23:14 +0000 (16:23 +0200)
* window.el (display-buffer-default-specifiers): Remove
pop-up-frame.  Add pop-up-window-min-height,
pop-up-window-min-width, and another reuse-window specifier
(Bug#8882).  Reported by Dan Nicolaescu <dann@gnu.org>.
(display-buffer-normalize-specifiers-2): Handle
split-height-threshold and split-width-threshold also when
pop-up-windows is unset.  Add a reuse-window specifier for the
case popping up a new window fails.
(special-display-popup-frame): Remove double quoting.

lisp/ChangeLog
lisp/window.el

index c831407..afbca4c 100644 (file)
@@ -1,3 +1,15 @@
+2011-06-18  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (display-buffer-default-specifiers): Remove
+       pop-up-frame.  Add pop-up-window-min-height,
+       pop-up-window-min-width, and another reuse-window specifier
+       (Bug#8882).  Reported by Dan Nicolaescu <dann@gnu.org>.
+       (display-buffer-normalize-specifiers-2): Handle
+       split-height-threshold and split-width-threshold also when
+       pop-up-windows is unset.  Add a reuse-window specifier for the
+       case popping up a new window fails.
+       (special-display-popup-frame): Remove double quoting.
+
 2011-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * shell.el (shell-completion-vars): Set pcomplete-termination-string
index a4baf99..67a80a6 100644 (file)
@@ -3480,10 +3480,13 @@ specific buffers."
 (defconst display-buffer-default-specifiers
   '((reuse-window nil same visible)
     (pop-up-window (largest . nil) (lru . nil))
-    (pop-up-frame)
+    (pop-up-window-min-height . 40)
+    (pop-up-window-min-width . 80)
+    (reuse-window other nil nil)
     (pop-up-frame-alist
      (height . 24) (width . 80) (unsplittable . t))
     (reuse-window nil other visible)
+    (reuse-window nil nil t)
     (reuse-window-even-sizes . t))
   "Buffer display default specifiers.
 The value specified here is used when no other specifiers have
@@ -5045,15 +5048,23 @@ options."
            (min-width (if (numberp split-width-threshold)
                           (/ split-width-threshold 2)
                         1.0)))
-       (when pop-up-window
-         ;; `split-height-threshold'
+       ;; Create an entry only if a default value was changed.
+       (when (or pop-up-window
+                 (not (equal split-height-threshold 80))
+                 (not (equal split-width-threshold 160)))
+         ;; `reuse-window' (needed as fallback when popping up the new
+         ;; window fails).
          (setq specifiers
-               (cons (cons 'pop-up-window-min-height min-height)
+               (cons (list 'reuse-window 'other nil nil)
                      specifiers))
          ;; `split-width-threshold'
          (setq specifiers
                (cons (cons 'pop-up-window-min-width min-width)
                      specifiers))
+         ;; `split-height-threshold'
+         (setq specifiers
+               (cons (cons 'pop-up-window-min-height min-height)
+                     specifiers))
          ;; `pop-up-window'
          (setq specifiers
                (cons (list 'pop-up-window
@@ -5663,7 +5674,7 @@ and (cdr ARGS) as second."
        ;; Reuse the current window if the user requested it.
        (when (cdr (assq 'same-window args))
         (display-buffer-reuse-window
-         buffer '(same nil nil) '((reuse-dedicated . 'weak))))
+         buffer '(same nil nil) '((reuse-dedicated . weak))))
        ;; Stay on the same frame if requested.
        (when (or (cdr (assq 'same-frame args))
                 (cdr (assq 'same-window args)))