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

From: "Drew Adams" <[email-masked]>
Date: Thu, 2 Dec 2010 11:22:11 -0800

> This would be funny when `pop-up-frames' is nil and a window 
> gets reused for showing the *Deletions* buffer.  In particular
> if that window is the only window on its frame ;-)

Agreed.  But what's the right test?  It is _not_ `pop-up-frames' non-nil,
because users can do other things than that to cause a new frame to be created
for this dialog.  What's needed is a test of whether a frame was newly created
for this dialog buffer.  What's the code for that test? 

> BTW the `save-window-excursion' is completely useless when 
> you pop up a new frame.

Yes, I know.  It was already there, and I left it.  It seems benign in this case
AFAICT, but feel free to fix this as it really should be fixed.

The bug report is about the annoyance of not deleting a new frame that was
created (using whatever mechanism, including non-nil `pop-up-frames') for dialog
purposes.  When the dialog is finished, such a new frame should disappear.
Users should not need to manually delete it.

How the bug gets fixed is up to you.  I'm reporting the problem, not a
particular fix.

>  > The important thing, for me, is that the frame that was 
>  > created just to show the files that will be deleted (or whatever)
>  > goes away.  It should be only a _temporary_ frame because its only
>  > raison d'etre is as part of the deletion etc. _dialog_.
> 
> Here I have a simple function called `quit-restore-window' which does
> exactly that.

If that does what's needed, fine; go for it.  I have no objection.

>  > [Martin will explain that a different test from 
>  > `one-window-p' is more appropriate. ;-)  IIRC, he generally
>  > prefers something like this to (one-window-p win):
>  > (eq win (frame-root-window (window-frame win))).]
> 
> Because `one-window-p' calls `next-window' which I don't 
> like.  See the recent discussion about `loop' endlessly cycling
> over windows.

As I said, "Martin will explain...".  That's fine with me, as long as the bug
gets fixed.