Subject: Re: bug#26682: 26.0.50; Error at startup with minibuffer-only frame

From: Eli Zaretskii <[email-masked]>
Date: Fri, 28 Apr 2017 11:56:59 +0300

> From: Stefan Monnier <[email-masked]>
> Date: Thu, 27 Apr 2017 13:08:10 -0400
> 
> 
> Some recent change in `master` has introduced a regression when using my
> configuration.  I can reproduce it with the recipe below:
> 
>     src/emacs -Q --eval '(setq default-frame-alist (quote ((minibuffer . only))))'
> 
> This launches Emacs but signals an error "Attempt to delete the only
> frame".

This seems to come from the following part at the beginning of
delete_frame:

  else if (!EQ (force, Qnoelisp) && !other_frames (f, !NILP (force)))
    {
      if (NILP (force))
	error ("Attempt to delete the sole visible or iconified frame");
      else
	error ("Attempt to delete the only frame");
    }

The original code there was:

  if (NILP (force) && !other_visible_frames (f))
    error ("Attempt to delete the sole visible or iconified frame");

Martin, why did you decide to disallow frame deletion when the FORCE
argument is t?  This makes delete-frame violate its documented
contract, whereby if FORCE == Qt, the fact that other frames are not
visible doesn't count.