Subject: bug#11939: 24.1; `save-buffers-kill-emacs' losesminibufferfocuswhenitcalls`list-processes'

From: "Drew Adams" <[email-masked]>
Date: Sat, 11 Aug 2012 09:58:28 -0700

>  > Should it not _always_ be the case that 
>  > `special-display-popup-frame' pops up the buffer in a frame,
>  > i.e., ensures that its display is clearly visible?
> 
> Its doc-string says...

Yes, I know what the doc string says.  I raised a question about the design: the
desired behavior.  The doc string would then follow from whatever was decided
about the behavior.

> I suppose FUNCTION should be held responsible for raising the frame if
> needed.

That's just the question I raised - should it?  That is the current design
(hence the doc string).  But is it the best approach?  Dunno.

In that case, `s-d-p-f' gets completely replaced and adds nothing to the party.
It does not necessarily pop up a frame showing the buffer.  The FUNCTION passed
as (car ARGS) is presumed to "do the work".  But "the work" has no meaning, not
even a suggested meaning - FUNCTION might well not raise the frame or even
display the buffer.

That's OK (it's one approach).  But is it reasonable to suppose that there are
many (any?) use cases where you would not want the frame raised?

To be clear: I do not have a problem with the current approach (and I've now
changed my version, likewise, to not raise (or fit) the frame in that case).

But if we keep that design then it might be clearer to state what "the work" is
generally expected to be, i.e., that it typically means displaying the buffer
and raising its frame.  E.g.:

  If ARGS is a list whose car is a symbol then use (car ARGS) as a
  function to do the work: display the buffer and raise its frame.
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Pass it BUFFER as first argument, and (cdr ARGS) as the rest of
  the arguments.

(See also bug #8853 wrt the last phrase - this regression is still not fixed.)

> I don't understand why you insist on using, advising, or redefining
> `special-display-popup-frame'.  Customizing
> `display-buffer-base-action' should be all you want.

What part of must-work-with-releases-other-than-just-24 did you not get?

You add a new knob, such as `display-buffer-base-action', and you think that
that takes care of everything.  Maybe it does for Emacs 24, but the knob does
not even exist prior to 24.  You are concerned only with the latest Emacs
release.  I, like many (most?) users, am not.

> BTW: With with-temp-buffer-window.el it's possible to customize
> `temp-buffer-resize-frames' and automatically resize temporary frames.

OK, good to know.  My need is not just for temporary frames (whatever that term
might mean), and it is generally not only for Emacs 24+.  But that is definitely
good to know.