mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
(kill-buffer-and-window): Fix a bug where an aborted
operation would still cause some window to collapse later.
This commit is contained in:
parent
98d763e7e7
commit
f5da083ed9
2 changed files with 21 additions and 8 deletions
|
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue