Subject: bug#36161: 27.0.50; display-buffer-in-previous-window might choose not to use PREVIOUS-WINDOW

From: martin rudalics <[email-masked]>
Date: Wed, 19 Jun 2019 11:15:13 +0200

> OK, let's try again. The recipe is:
 >
 > 1. emacs -Q
 > 2. Split the frame into 4 windows, so that new display-buffer calls don't pop any new windows.
 > 3. Select the top-left window (for instance).
 > 4. Call M-x project-find-regexp, input "Xref", press RET. The result is an *xref* buffer shown in one of the windows.
 > 5. Press q.
 > 6. Try 4. again.
 > 7. Repeat 5,6 as many times as you like. The *xref* buffer will be displayed in all three available windows in turn.

Sorry, step 4 does not work here so I cannot try that.  The behavior
you see might be caused by the rotation of windows in 'window-list-1'.
But also some other buffer display action might be responsible.  So
the first question is whether you are sure that the window is produced
by 'display-buffer-in-previous-window' in all these cases.

 >>  > So about that main use case (the Debugger), can it just exclude the selected window using inhibit-same-window? That would obviate the need for special logic in this case.
 >>
 >> An 'inhibit-same-window' entry is the canonical way to "exclude" the
 >> selected window.  A 'previous-window' entry is just a hint to "prefer"
 >> some other window.
 >
 > I'm not sure if you're trying to say "no" in response to my question. But if so, I suppose this bug report can be closed (and we can conclude that this function is definitely not suitable for xref). Thanks for updating the docstring.

I've been trying to say "yes" to the question "can it just exclude the
selected window using inhibit-same-window".

martin