]> git.eshelyaron.com Git - emacs.git/commitdiff
Really make the *Completions* window soft-dedicated (bug#5030).
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 25 Nov 2009 16:36:04 +0000 (16:36 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 25 Nov 2009 16:36:04 +0000 (16:36 +0000)
* window.el (window--display-buffer-2): Add `dedicated' argument.
(display-buffer): Pass it when needed so the dedicated flag is set
after calling set-window-buffer, which would otherwise reset it.

lisp/ChangeLog
lisp/window.el

index 915ad94959fd44fbefa14b007e82fc0e70c0d0a4..3f392f8183ed59cb8e64d12c62370906efdc0067 100644 (file)
@@ -1,3 +1,10 @@
+2009-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Really make the *Completions* window soft-dedicated (bug#5030).
+       * window.el (window--display-buffer-2): Add `dedicated' argument.
+       (display-buffer): Pass it when needed so the dedicated flag is set
+       after calling set-window-buffer, which would otherwise reset it.
+
 2009-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * progmodes/meta-mode.el (meta-complete-symbol):
index 4a226df7b2020c13bd1bededcf9d2ea1a1c2815e..ed4cfb5653e17bc34298f39ce33310400e9d29b2 100644 (file)
@@ -1035,11 +1035,14 @@ Do not raise the selected frame.  Return WINDOW."
       (raise-frame frame))
     window))
 
-(defun window--display-buffer-2 (buffer window)
+(defun window--display-buffer-2 (buffer window &optional dedicated)
   "Display BUFFER in WINDOW and make its frame visible.
+Set `window-dedicated-p' to DEDICATED if non-nil.
 Return WINDOW."
   (when (and (buffer-live-p buffer) (window-live-p window))
     (set-window-buffer window buffer)
+    (when dedicated
+      (set-window-dedicated-p window-to-use dedicated))
     (window--display-buffer-1 window)))
 
 (defvar display-buffer-mark-dedicated nil
@@ -1139,9 +1142,7 @@ consider all visible or iconified frames."
      ((or use-pop-up-frames (not frame-to-use))
       ;; We want or need a new frame.
       (let ((win (frame-selected-window (funcall pop-up-frame-function))))
-        (when display-buffer-mark-dedicated
-          (set-window-dedicated-p win display-buffer-mark-dedicated))
-        (window--display-buffer-2 buffer win)))
+        (window--display-buffer-2 buffer win display-buffer-mark-dedicated)))
      ((and pop-up-windows
           ;; Make a new window.
           (or (not (frame-parameter frame-to-use 'unsplittable))
@@ -1157,9 +1158,8 @@ consider all visible or iconified frames."
                      (get-largest-window frame-to-use t))
                     (window--try-to-split-window
                      (get-lru-window frame-to-use t)))))
-      (when display-buffer-mark-dedicated
-        (set-window-dedicated-p window-to-use display-buffer-mark-dedicated))
-      (window--display-buffer-2 buffer window-to-use))
+      (window--display-buffer-2 buffer window-to-use
+                                display-buffer-mark-dedicated))
      ((let ((window-to-undedicate
             ;; When NOT-THIS-WINDOW is non-nil, temporarily dedicate
             ;; the selected window to its buffer, to avoid that some of