From: Stefan Monnier Date: Thu, 15 Aug 2002 00:34:04 +0000 (+0000) Subject: (split-window-save-restore-data): Use push and with-current-buffer. X-Git-Tag: ttn-vms-21-2-B4~13686 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4a4accf705681d4d8e05b72b4a33374bfe0447c7;p=emacs.git (split-window-save-restore-data): Use push and with-current-buffer. (handle-select-window): Don't do anything if the window has disappeared since the event was generated. --- diff --git a/lisp/window.el b/lisp/window.el index cb4de12a9cf..98d5f9963f1 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -239,7 +239,7 @@ If WINDOW is nil or omitted, it defaults to the currently selected window." (setq done nil)))))) 'nomini)))))) -;;; I think this should be the default; I think people will prefer it--rms. +;; I think this should be the default; I think people will prefer it--rms. (defcustom split-window-keep-point t "*If non-nil, split windows keeps the original point in both children. This is often more convenient for editing. @@ -300,13 +300,11 @@ new mode line." (defvar view-return-to-alist) (defun split-window-save-restore-data (new-w old-w) - (save-excursion - (set-buffer (window-buffer)) + (with-current-buffer (window-buffer) (if view-mode (let ((old-info (assq old-w view-return-to-alist))) - (setq view-return-to-alist - (cons (cons new-w (cons (and old-info (car (cdr old-info))) t)) - view-return-to-alist)))) + (push (cons new-w (cons (and old-info (car (cdr old-info))) t)) + view-return-to-alist))) new-w)) (defun split-window-horizontally (&optional arg) @@ -582,8 +580,9 @@ and the buffer that is killed or buried is the one in that window." "Handle select-window events." (interactive "e") (let ((window (posn-window (event-start event)))) - (if (or (not (window-minibuffer-p window)) - (minibuffer-window-active-p window)) + (if (and (window-live-p window) + (or (not (window-minibuffer-p window)) + (minibuffer-window-active-p window))) (select-window window)))) (define-key ctl-x-map "2" 'split-window-vertically)