Subject: bug#8911: bs-cycle-next deletes window in some cases.

From: "Drew Adams" <[email-masked]>
Date: Wed, 29 Jun 2011 08:36:23 -0700

> M-x bury-buffer RET *should* iconify the current frame
> if it shows a single dedicated window (with the caveat
> that Drew wants it to delete the frame instead).

So...it *SHOULD*...(but Drew wants something different).  Hm.

"Drew wants".  What Drew might want for his personal use is one thing.  What
Drew wants for Emacs is another thing.  In either case you misrepresent what
Drew wants.

I made it clear that I did _not_ "want it to delete the frame instead".  That is
_not_ the behavior I prefer for Emacs, and it is not even my preference for my
own use all of the time.

I said, speaking about the dedicated-window case:

> the best approach is (a) above: have `bury-buffer'
> just bury the buffer (i.e. affect the buffer order) and
> not have it do anything wrt the display in this case.
>
> IOW, not disappear or move in any way - an unchanged display.
> The only effect would be the change in buffer order that is
> the raison d'etre of `bury-buffer': make it least likely to
> be used as `other-buffer'.

NO deletion and NO iconification, by default.
That's what Drew wants for Emacs.

But also with the possibility for a _user_ to add deletion or iconification - or
anything else s?he might like.  I said that we should give users control.  

Users who, like Stefan, might want `bury-buffer' for a dedicated window to
always be accompanied by iconification, and users who might want it to instead
always delete the frame, should be able to get what they want.

But also users who might want `bury-buffer' to iconify in context A, delete in
context B, thumbify in context C, and do nothing at all to the display in
context D -- those users too should be able to get the behavior they prefer.

There's nothing holy about Stefan's or Drew's preferences for personal use -
those personal preferences should not preclude other users from getting other
behaviors that they prefer.

I proposed adding a `bury-buffer-hook', which users can use to do anything they
like after `bury-buffer' changes the buffer order:

> so users like Stefan can make it also do <whatever> after
> just changing the buffer order.  In particular, the <whatever>
> could play with the display (iconify or delete frame etc.)
>
> Without doing anything in the hook, a dedicated
> window/frame/buffer would just stay there.

Simple, clean, easy to use, decoupled.
Flexible for different contexts.

Stefan countered with a (reluctant "Drew wants") proposal to add an option to
give users just a little control of the display behavior:

S> add an option so that bury-buffer uses delete-frame
S> instead of iconify-frame. 

But he refused to let users (a) do _nothing_ in terms of display (e.g. leave the
dedicated window/frame, with its buried buffer) or (b) do something different
altogether.

The option he proposed does not let users choose any other behavior (or no
behavior), besides deletion and iconification.  And naturally he wants
iconification to be the default.

My argument isn't to delete the frame.
My argument is to give the _user_ control.

My argument is that `bury-buffer' is essentially about changing the buffer
order, and any choice about what to do (if anything) about the _display_ of the
buried buffer (delete, iconify, leave alone,...) should be the _user's_ choice,
not Stefan's choice hard-wired into the design.

Even if you insisted on prepopulating the hook so that the _default_ behavior
was whatever you prefer (e.g. iconifying), what I would like is for users to
have real control over the behavior - not just some binary option to delete
instead of iconify.  That's what "Drew wants".

If you refuse to give the user real control, however, and you insist on coupling
some display behavior with the changing of the buffer order (`bury-buffer's
raison d'etre), then yes, in that desperate case _only_, I said:

> _if_ the buffer is to be made to "disappear" then my (second) choice
> would be for it to disappear via `delete-frame', not iconification.

But why not let users get whatever behavior they want, easily?
Why insist on deciding for them?

We know we want `bury-buffer' to bury the buffer: change the buffer order.
That's not in question.  What's not agreed upon is what else it should do,
particularly in the case of a dedicated window.  I say, let users themselves
decide.

Buffer display, and especially so for dedicated windows, can be a complex,
personal matter.  Please don't force automatic frame iconification (or deletion
for that matter) on everyone.  There's no need for that.