GNU bug report logs -
#68235
29.1.90; Switching tabs stops following process output in selected window
Previous Next
Reported by: Dan McCarthy <daniel.c.mccarthy <at> gmail.com>
Date: Wed, 3 Jan 2024 20:49:02 UTC
Severity: normal
Found in version 29.1.90
Fixed in version 30.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>> We can set up a buffer local variable whose value is a function that
>> 'set-window-configuration' would call whenever it finds a window with
>> that buffer dead. 'set-window-configuration' would then check whether
>> that function correctly returned a live buffer to show in that window.
>> If the function succeeded, 'set-window-configuration' could try to
>> restore the earlier values of window point and start in the window. If
>> the function failed, 'set-window-configuration' would either delete the
>> window or display *scratch* in it.
>
> Probably better to keep this function in a window parameter
> like you proposed earlier to restore dired positions.
I just tried what I proposed above and noticed that it's virtually
impossible to come up with a safe solution. Running Lisp from the
middle of 'set-window-configuration' is madness because the respective
frame may be still under construction at that time with windows, their
respective links, sizes and buffers missing.
What we can safely do is the following: Give 'set-window-configuration'
a new argument, say 'keep-dead-buffer-windows'. If non-nil,
'set-window-configuration' does not delete dead buffer windows but shows
*scratch* in them. 'post-set-window-configuration-functions' would then
pass two arguments: the respective frame and a list of four entries for
each dead buffer window it found: The window, the buffer it previously
showed, its window point and its window start position. A function run
by that hook would then be able to replace *scratch* with, for example,
a new buffer visiting the file the previously shown buffer visited and
also restore point and window start of that window.
martin
This bug report was last modified 1 year and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.