[slime-devel] Dismissing temp buffers

Helmut Eller heller at common-lisp.net
Fri Jan 16 20:47:47 UTC 2009


* Walter GR [2009-01-16 19:42+0100] writes:

> http://common-lisp.net/project/slime/doc/html/Temporary-buffers.html
>
> "Temporary buffers can be dismissed by pressing q. This kills the buffer 
> and restores the window configuration as it was before the buffer was 
> displayed."
>
> For me, this isn't the case.  q kills the buffer, but retains the window 
> configuration that exists when the buffer was visible.
>
> Is this a bug or am I doing it wrong?

The implementation has changed a bit: q kills the window only if the
window was created for the temp buffer.  If the window existed before
then the window remains as it is, only the previous buffer is displayed
in the window.  It doesn't restore the full window config, because that
doesn't work for some people.

> P.S. Specific example: I use one Emacs window split into two vertical 
> frames.  The top frame (~75% in height) is the Lisp code I'm editing; 
> the smaller bottom frame is the SLIME REPL.
>
> When I do slime-describe-symbol when in the Lisp code, the SLIME REPL 
> "disappears" from the bottom, and the bottom 50% of the window is now 
> occupied by an informational buffer.  Pressing q replaces the temp 
> buffer with the SLIME REPL, but it still occupies 50% of the window.

In regard to window configs, slime-describe-symbol is supposed to act
similar as C-h f does.  That also changes window sizes.

Hmm.. this looks like a bug in display-buffer.  We use that to select
or create an appropriate window for the temp buffer.
Aha, there is a variable `even-window-heights':
"If non-nil `display-buffer' will try to even window heights.
Otherwise `display-buffer' will leave the window configuration
alone.  Heights are evened only when `display-buffer' chooses a
window that appears above or below the selected window."

Have you tried to set that to nil?

Helmut.





More information about the slime-devel mailing list