Subject: Re: bug#68235: 29.1.90; Switching tabs stops following process output in selected window

From: Juri Linkov <[email-masked]>
Date: Tue, 05 Mar 2024 19:37:47 +0200

>> Patch attached.  I now provide only one hook I called
>> 'window-kept-windows-functions' which is run by both
>> 'set-window-configuration' and 'window-state-put'.
>
> Should be on master now.

In addition to the previous patch I also have more questions:

1. window-kept-windows-functions should be announced in etc/NEWS?

2. window-kept-windows-functions is called too often.
Most of the calls contain just the minibuffer:

   ((#<window 4 on  *Minibuf-0*> #<buffer  *Minibuf-0*> 1 1))

Is it possible not to include the minibuffer window?
So when most of the time this list of kept windows will be empty,
then maybe better to not call the hook at all?

3. Very often the message inserted by the patch that I posted
are quite useless because they look like this:

   This window displayed the buffer #<killed buffer>.

This would be much more informative:

   This window displayed the buffer *Help*.

Maybe 'buffer-last-name' could help to achieve this?

4. I don't understand this part, but maybe this is already correct:

      /* Scan dead buffer windows.  */
      if (!NILP (Vwindow_kept_windows_functions))
	for (; CONSP (dead_windows); dead_windows = XCDR (dead_windows))
	  {
	    window = XCAR (dead_windows);
	    if (WINDOW_LIVE_P (window) && !EQ (window, FRAME_ROOT_WINDOW (f)))
	      delete_deletable_window (window);
	  }

Should it be if(NILP (Vwindow_kept_windows_functions)) instead?
However, this already works correctly in my tests.