Subject: Re: 26.0.50; delete-other-windows deletes side windows

From: martin rudalics <[email-masked]>
Date: Wed, 09 Aug 2017 12:02:42 +0200

> I figure that for side windows, it would be more common to want the
 > previous behaviour than not. Since if someone wanted to remove all side
 > windows, one could use 'window-toggle-side-windows' instead, right?

Right.  But IIUC some people wanted side windows for the single purpose
to display a buffer on a chosen side of the frame.  Once created, they
want the window to behave like any other ordinary window.  They don't
get that because a side window cannot be made the single window of its
frame, cannot be split and the like.  Still ...

 > In any case, it would be nice to have a better interface for enabling
 > (or disabling) this behaviour, rather than using 'set-window-parameter'.
 >
 > I'd like to suggest an additional (preferably terse) special symbol for
 > the alist argument of 'display-buffer-in-side-window' that would inhibit
 > window deletion either by delete-other-windows, delete-window, or both.

Then we should probably care about the ‘no-other-window’ parameter as
well.  BTW, a ‘no-delete-window’ parameter doesn't exist yet - we would
have to add it first.  Currently, you have to set the ‘delete-window’
parameter of the window to 'ignore.  Also note that in general it's
easier to just add a parameter than to first have one added and remove
it afterwards.

There is an example in the Elisp manual section 28.19.3 Frame Layouts
with Side Windows.  Could you read it first, tell me what is not clear
or clumsy to use.  Then we could possibly come up with a better
solution.

 > The procedure mentions "a ‘window-parameter’ entry in ALIST", but it
 > doesn't mention the form it should be in.

The doc-string of ‘display-buffer’ describes it as

  ‘window-parameters’ -- Value specifies an alist of window
                         parameters to give the chosen window.

 > I tried a few obvious forms,
 > but none were applied. In any case, I believe it's still too
 > inconvenient to list out the relevant parameters explicitly in this way.

This should be improved since window parameters should be easily
specifiable in a ‘display-buffer’ alist not only for side windows.
Please make a suggestion.

 > P.S. I believe the ‘no-delete-other-window’ parameter should instead be
 > ‘no-delete-other-windows’, to match the plurality of
 > ‘delete-other-windows’. I made that mistake when first trying to set the
 > parameter.

Suppose we added a ‘no-delete-window’ parameter: Its semantics would
probably be to not delete this window.  Then a ‘no-delete-other-windows’
parameter's semantics would be to not delete any other windows when
invoked with this window selected.  That's why I chose the term without
the "s".  Arguably, this reasoning is broken by the ‘no-other-window’
parameter ...

martin