emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: delete-other-frames


From: Eli Zaretskii
Subject: Re: delete-other-frames
Date: Tue, 23 Aug 2016 17:09:04 +0300

> Date: Tue, 23 Aug 2016 10:19:59 +0200
> From: martin rudalics <address@hidden>
> 
> The problematic code in ‘delete-other-frames’ is this:
> 
>      ;; Delete mon-minibuffer-only frames first, because `delete-frame'
>      ;; signals an error when trying to delete a mini-frame that's
>      ;; still in use by another frame.
>      (dolist (frame frames)
>        (unless (eq (frame-parameter frame 'minibuffer) 'only)
>       (delete-frame frame)))
> 
> Here we try to delete all frames whose `minibuffer' parameter is not
> `only'.  However, the minibuffer window of a minibuffer-less frame might
> be on a _normal_ frame as in our example: The minibuffer window of the
> frame ‘less’ is owned by the initial frame and ‘delete-other-frames’
> tries to delete that frame before ‘less’, resulting in the error cited
> above.
> 
> Should we document the current behavior in the doc-string or should we
> amend the code?

IMO, amend the code.

> (2) The doc-string says "Delete all frames on the current terminal,
> except FRAME."  IIUC this doesn't make much sense when FRAME is not on
> the current terminal.  In that case, ‘delete-other-frames’ will delete
> all frames on the current terminal and leave the frames on FRAME's
> terminal alone.  In order to delete all other frames on FRAME's terminal
> one has to make that terminal current first.  If that is the desired
> behavior, we should mention it in the doc-string.  Otherwise, we should
> delete all other frames on FRAME's terminal.

The latter, I think.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]