Subject: Re: bug#32825: 27.0.50; Deterministic window management

From: martin rudalics <[email-masked]>
Date: Fri, 16 Nov 2018 09:53:27 +0100

> The need to skip.  If the original window was too small
 > to split and display the buffer in a new window below, then
 > if some existing window is reused to display the temporary buffer,
 > it's understandable for the user why that temporary buffer is shown
 > in the window-local tab-bar.
 >
 > At least, then the user will see in which window the same buffer
 > will be reappear again - in the same window that shows this buffer
 > in its window-local tab-bar.

The latter is a visual feedback.  But if I blindly use C-x left, I'd
still be surprised.

 > The second time when the buffer is displayed again in a previous window
 > is deterministic.  But the first time it is non-deterministic - it's
 > displayed in a random window.  At least, the user can't predict the
 > window where it will be displayed - thus the surprise factor.
 > With get-mru-window instead get-lru-window the place is more
 > deterministic because the user usually remembers which window is mru.

We can add an action alist entry to get the mru (or better
mru-not-selected) behavior.  A small deal.

 >> When people work with two windows simultaneously, the mru one is
 >> usually the "other" window they work with, maybe showing the same
 >> buffer at a different location.  I think it would be a bad idea to
 >> punish such users by reusing the other window for showing some
 >> temporary buffer instead.
 >
 > Right.  Neither lru nor mru should be used to steal existing windows
 > from users to show temporary buffers.  Only new windows should be
 > created below or on the bottom.
 >
 > But my complaint about get-lru-window is that it prevents me from
 > using more than two windows.

... the way you want.

 > When I create three windows or more,
 > then get-lru-window always selects a wrong window.  Is it possible
 > to change get-lru-window to get-mru-window to allow using three windows
 > and more on the same frame?

Earlier we discussed whether "creating a window" should also mean
"using that window".  This could be yet another action alist entry -
bump the use time of the window used for displaying a buffer even when
it's not selected.

I suggest you try adding this and the one providing mru behavior I
mentioned above, experiment with them and install them if they give
good results.

martin