Subject: Re: bug#7865: Bug in display-buffer-reuse-frames [was Re: bug#7865: 24.0.50; doc of display-buffer-reuse-frames]

From: martin rudalics <[email-masked]>
Date: Sun, 13 Feb 2011 15:05:36 +0100

> I think this is actually a bug.  Doing `C-x b' with non-nil
 > display-buffer-reuse-frames should make Emacs raise another frame if
 > it;s already displaying the desired buffer---regardless of the value of
 > pop-up-frames.

If `display-buffer-reuse-frames' is non-nil, Emacs currently uses an
arbitrary window on _any_ frame provided the window shows the buffer,
regardless of the value of `pop-up-frames'.  It has been this way ever
since `display-buffer-reuse-frames' was introduced.

 > Currently, if display-buffer-reuse-frames and pop-up-frames are both t,
 > `C-x b' instead displays the buffer in the existing frame.  So
 > `pop-up-frames' has changed the behavior, even though it's not doing any
 > "popping up" in this case.

I suppose you mean "if `display-buffer-reuse-frames' is nil and
`pop-up-frames' is t" in the first sentence above.  In that case I'd
agree.  But I think Stefan wants it the current way because he doesn't
care much about `display-buffer-reuse-frames' and he's using these
options for popping up dedicated frames to show some buffer in such a
frame and nowhere else.  In his particular use case the present behavior
makes perfect sense because it DTRT even if he asks for displaying the
buffer when its frame _is_ currently selected.

To make `display-buffer-reuse-frames' work as you describe we'd have to
make the `get-buffer-window' routines understand as ALL-FRAMES argument
a value of say 'other, meaning to "not return a window on the selected
frame".  Or, we can sort out these windows manually - you might want to
have a look at the routine `display-buffer-reuse-window' in my branch to
see how it's done there.

martin