bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#5030: 23.1.50; Unexpected minibuffer tab completion behavior


From: Matthew Dempsky
Subject: bug#5030: 23.1.50; Unexpected minibuffer tab completion behavior
Date: Tue, 24 Nov 2009 17:23:05 -0800

On Tue, Nov 24, 2009 at 5:09 PM, Matthew Dempsky wrote:
>  - The `(and pop-up-windows ...)' clause of `display-buffer' is
> evaluated*, and calls `(set-window-dedicated-p window-to-use 'soft)'.
>  - However, the `window--display-buffer-2' call then calls
> `set-window-buffer', which sets `w->dedicated = Qnil'.

Not sure if this is the best fix, but the patch below at least
corrects this issue.  It changes `display-buffer' so that
`set-window-dedicated-p' is called after `window--display-buffer-2' in
both clauses that use `display-buffer-mark-dedicated'.

--- a/lisp/window.el
+++ b/lisp/window.el
@@ -1139,9 +1139,9 @@ 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)))
+       (prog1 (window--display-buffer-2 buffer win)
+         (when display-buffer-mark-dedicated
+           (set-window-dedicated-p win display-buffer-mark-dedicated)))))
      ((and pop-up-windows
           ;; Make a new window.
           (or (not (frame-parameter frame-to-use 'unsplittable))
@@ -1157,9 +1157,9 @@ 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))
+      (prog1 (window--display-buffer-2 buffer window-to-use)
+       (when display-buffer-mark-dedicated
+         (set-window-dedicated-p 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]