From: Richard M. Stallman Date: Tue, 17 Jun 1997 05:10:06 +0000 (+0000) Subject: (split-window-save-restore-data): New function that X-Git-Tag: emacs-20.1~1667 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c361280d2cf113f957d42044fd6c5be93b14f5ec;p=emacs.git (split-window-save-restore-data): New function that for view mode buffers saves information in view-return-to-alist. (split-window-vertically, split-window-horizontally): Call split-window-save-restore-data. --- diff --git a/lisp/window.el b/lisp/window.el index 5be9f870b9d..a47a1eaac0b 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -196,6 +196,16 @@ new mode line." (progn (set-window-point new-w old-point) (select-window new-w))))) + (split-window-save-restore-data new-w old-w))) + +(defun split-window-save-restore-data (new-w old-w) + (save-excursion + (set-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)))) new-w)) (defun split-window-horizontally (&optional arg) @@ -204,10 +214,11 @@ This window becomes the leftmost of the two, and gets ARG columns. Negative arg means select the size of the rightmost window instead. No arg means split equally." (interactive "P") - (let ((size (and arg (prefix-numeric-value arg)))) + (let ((old-w (selected-window)) + (size (and arg (prefix-numeric-value arg)))) (and size (< size 0) (setq size (+ (window-width) size))) - (split-window nil size t))) + (split-window-save-restore-data (split-window nil size t) old-w))) (defun enlarge-window-horizontally (arg) "Make current window ARG columns wider."