From: Martin Rudalics Date: Wed, 5 Oct 2011 06:49:53 +0000 (+0200) Subject: New option frame-auto-hide-function replacing frame-auto-delete. X-Git-Tag: emacs-pretest-24.0.91~205 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5a4cf282349bc0cb2a6a30321c6418907c5f37a4;p=emacs.git New option frame-auto-hide-function replacing frame-auto-delete. * window.el (frame-auto-hide-function): New option replacing frame-auto-delete. Suggested by Stefan Monnier. (window--delete): Call frame-auto-hide-function instead of investigating frame-auto-delete. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8ac25f39650..e8196fbea75 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2011-10-05 Martin Rudalics + + * window.el (frame-auto-hide-function): New option replacing + frame-auto-delete. Suggested by Stefan Monnier. + (window--delete): Call frame-auto-hide-function instead of + investigating frame-auto-delete. + 2011-10-05 Stefan Monnier * emacs-lisp/edebug.el: Heed checkdoc recommendations. diff --git a/lisp/window.el b/lisp/window.el index 98fd7101853..a8b506cb7bf 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -2738,13 +2738,18 @@ the buffer `*scratch*', creating it if necessary." (set-buffer-major-mode scratch) scratch))) -(defcustom frame-auto-delete nil - "Non-nil means automatically delete frames. -The default value nil means to iconify frames instead. Functions -affected by this variable are `quit-window' (when burying the -window's buffer) and `bury-buffer'." - :type 'boolean - :group 'windows) +(defcustom frame-auto-hide-function #'iconify-frame + "Function called to automatically hide frames. +The function is called with one argument - a frame. + +Functions affected by this option are those that bury a buffer +shown in a separate frame like `quit-window' and `bury-buffer'." + :type '(choice (const :tag "Iconify" iconify-frame) + (const :tag "Delete" delete-frame) + (const :tag "Do nothing" ignore) + function) + :group 'windows + :group 'frames) (defun window--delete (&optional window dedicated-only kill) "Delete WINDOW if possible. @@ -2760,9 +2765,8 @@ if WINDOW gets deleted." (cond ((eq deletable 'frame) (let ((frame (window-frame window))) - (if (or kill frame-auto-delete) - (delete-frame frame) - (iconify-frame frame))) + (when (functionp frame-auto-hide-function) + (funcall frame-auto-hide-function frame))) 'frame) (deletable (delete-window window)