Commit f5da083e authored by David Kastrup's avatar David Kastrup
Browse files

(kill-buffer-and-window): Fix a bug where an aborted

operation would still cause some window to collapse later.
parent 98d763e7
2006-10-20 David Kastrup <dak@gnu.org>
* window.el (kill-buffer-and-window): Fix a bug where an aborted
operation would still cause some window to collapse later.
2006-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
 
* vc.el (vc-switch-backend): Try to be more careful with unwanted
......@@ -574,7 +579,7 @@
 
* autoinsert.el (auto-insert-alist): Doc fix.
 
2006-10-07 Johan Bockg,be(Brd <bojohan@dd.chalmers.se>
2006-10-07 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>
 
* mouse-sel.el (mouse-insert-selection-internal):
Use insert-for-yank, so that yank handlers are run.
......@@ -719,17 +719,25 @@ or if the window is the only window of its frame."
"Kill the current buffer and delete the selected window."
(interactive)
(let ((window-to-delete (selected-window))
(buffer-to-kill (current-buffer))
(delete-window-hook (lambda ()
(condition-case nil
(delete-window)
(error nil)))))
(add-hook 'kill-buffer-hook delete-window-hook t t)
(if (kill-buffer (current-buffer))
;; If `delete-window' failed before, we rerun it to regenerate
;; the error so it can be seen in the minibuffer.
(when (eq (selected-window) window-to-delete)
(delete-window))
(remove-hook 'kill-buffer-hook delete-window-hook t))))
(unwind-protect
(progn
(add-hook 'kill-buffer-hook delete-window-hook t t)
(if (kill-buffer (current-buffer))
;; If `delete-window' failed before, we rerun it to regenerate
;; the error so it can be seen in the echo area.
(when (eq (selected-window) window-to-delete)
(delete-window))))
;; If the buffer is not dead for some reason (probably because
;; of a `quit' signal), remove the hook again.
(condition-case nil
(with-current-buffer buffer-to-kill
(remove-hook 'kill-buffer-hook delete-window-hook t))
(error nil)))))
(defun quit-window (&optional kill window)
"Quit the current buffer. Bury it, and maybe delete the selected frame.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment