Subject: bug#7368: Testcase

From: Андрей Парамонов<[email-masked]>
Date: Sat, 13 Nov 2010 11:47:19 +0300

2010/11/13 martin rudalics <[email-masked]>:
> On my trunk Emacs your code produces a new window on the selected frame.

Ah, sorry. Here is the modified version which I've actually checked ;-)

(let ((foo (get-buffer-create "foo.el"))
      (bar (get-buffer-create "bar.el")))
  (switch-to-buffer foo)
  (delete-other-windows)
  (emacs-lisp-mode)
  (insert "(a")
  (completion-at-point)
  (display-buffer bar t))

> So `display-buffer' simply has no other choice but
> making a new frame.

In principle, in this very awkward situation display-buffer has 3 options:

1) To display buffer in selected window -- but not-in-this-window=t.

2) To display buffer in a new frame -- but pop-up-frames says we
*never* make a separate frame.

3) To display buffer in place of completions window -- but that window
is "dedicated".

To me option 3 seems the least unexpected.

Anyway, something needs to be fixed, as current documentation for
pop-up-frames is wrong.

> BTW, the snippet
>
> (progn
>  (delete-other-windows)
>  (display-buffer (other-buffer) t))
>
> should be sufficient for exhibiting the behavior you observe.

No, the completions buffer plays important role.

Thanks for your support,
Andrey Paramonov