Subject: bug#7533: 24.0.50; `dired-mark-pop-up': delete frame afterwards if `pop-up-frames'

From: "Drew Adams" <[email-masked]>
Date: Thu, 16 Dec 2010 10:27:48 -0800

> > Meanwhile we should restore the old behavior.  Chong could
> > you please apply the attached patch.
> 
> Done.

FWIW, I still see the problem in the latest Windows binary:

In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
 of 2010-12-13 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4) --no-opt --cflags
-Ic:/imagesupport/include'

Martin's patch fixes the problem only for non-nil `pop-up-frames'.  (So strictly
speaking it responds to the Subject line of the bug.  But it does not respond
fully to what I meant in the bug report.)

It does not fix the problem if the buffer (e.g. `*Marked Files*') is popped up
in a separate frame for some other reason, for example, via
`special-display-popup-frame'.

To reproduce:

emacs -Q

M-x set-variable RET
 special-display-regexps RET
 ("[ ]?[*][^*]+[*]") RET

The bug needs to be fixed so that _whenever_ the buffer is shown in a separate
frame that frame gets deleted when the dialog is finished (e.g. when the Dired
command to copy/delete/... is finished).

If you think a full fix is too complicated for now for some reason, then at
least bind `q' in that popped up buffer so that `q' invokes `quit-window' (_not_
`View-quit'), which will delete the frame.  IOW, as a workaround, at least give
it the behavior of *Buffer List*, where hitting `q' deletes the frame,

Obliging the user to hit `q' is not the real solution.  It just provides a
temporary workaround and should be considered only if you conclude that
implementing a good solution is too hard for the moment.

Alternatively, restore the behavior in Emacs 22, where even if
`special-display-regexps' would normally cause the buffer to be displayed in a
separate frame it is not: it is popped up in a window of the current frame.
That overrides the user's setting, but at least it is not annoying.