+2011-10-05 Martin Rudalics <rudalics@gmx.at>
+
+ * 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 <monnier@iro.umontreal.ca>
* emacs-lisp/edebug.el: Heed checkdoc recommendations.
(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.
(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)