/[emacs]/emacs/lisp/window.el
ViewVC logotype

Diff of /emacs/lisp/window.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.86 by pj, Mon Apr 1 13:39:23 2002 UTC revision 1.86.2.1 by miles, Fri Apr 4 06:20:12 2003 UTC
# Line 31  Line 31 
31    
32  (defmacro save-selected-window (&rest body)  (defmacro save-selected-window (&rest body)
33    "Execute BODY, then select the window that was selected before BODY.    "Execute BODY, then select the window that was selected before BODY.
34  However, if that window has become dead, don't get an error,  Also restore the selected window of each frame as it was at the start
35  just refrain from switching to it."  of this construct.
36    `(let ((save-selected-window-window (selected-window)))  However, if a window has become dead, don't get an error,
37    just refrain from reselecting it."
38      `(let ((save-selected-window-window (selected-window))
39             (save-selected-window-alist
40              (mapcar (lambda (frame) (list frame (frame-selected-window frame)))
41                      (frame-list))))
42       (unwind-protect       (unwind-protect
43           (progn ,@body)           (progn ,@body)
44           (dolist (elt save-selected-window-alist)
45             (and (frame-live-p (car elt))
46                  (window-live-p (cadr elt))
47                  (set-frame-selected-window (car elt) (cadr elt))))
48         (if (window-live-p save-selected-window-window)         (if (window-live-p save-selected-window-window)
49             (select-window save-selected-window-window)))))             (select-window save-selected-window-window)))))
50    
# Line 239  If WINDOW is nil or omitted, it defaults Line 248  If WINDOW is nil or omitted, it defaults
248                                            (setq done nil))))))                                            (setq done nil))))))
249                          'nomini))))))                          'nomini))))))
250    
251  ;;; 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.
252  (defcustom split-window-keep-point t  (defcustom split-window-keep-point t
253    "*If non-nil, split windows keeps the original point in both children.    "*If non-nil, split windows keeps the original point in both children.
254  This is often more convenient for editing.  This is often more convenient for editing.
# Line 300  new mode line." Line 309  new mode line."
309  (defvar view-return-to-alist)  (defvar view-return-to-alist)
310    
311  (defun split-window-save-restore-data (new-w old-w)  (defun split-window-save-restore-data (new-w old-w)
312    (save-excursion    (with-current-buffer (window-buffer)
     (set-buffer (window-buffer))  
313      (if view-mode      (if view-mode
314          (let ((old-info (assq old-w view-return-to-alist)))          (let ((old-info (assq old-w view-return-to-alist)))
315            (setq view-return-to-alist            (push (cons new-w (cons (and old-info (car (cdr old-info))) t))
316                  (cons (cons new-w (cons (and old-info (car (cdr old-info))) t))                  view-return-to-alist)))
                       view-return-to-alist))))  
317      new-w))      new-w))
318    
319  (defun split-window-horizontally (&optional arg)  (defun split-window-horizontally (&optional arg)
# Line 518  Return non-nil if the window was shrunk. Line 525  Return non-nil if the window was shrunk.
525                         (not (eq frame (window-frame mini-window)))                         (not (eq frame (window-frame mini-window)))
526                         (< (nth 3 edges)                         (< (nth 3 edges)
527                            (nth 1 (window-edges mini-window)))                            (nth 1 (window-edges mini-window)))
528                         (> (nth 1 edges)                         (> (nth 1 edges)
529                            (frame-parameter frame 'menu-bar-lines))))))                            (frame-parameter frame 'menu-bar-lines))))))
530          (fit-window-to-buffer window (window-height window)))))          (fit-window-to-buffer window (window-height window)))))
531    
# Line 582  and the buffer that is killed or buried Line 589  and the buffer that is killed or buried
589    "Handle select-window events."    "Handle select-window events."
590    (interactive "e")    (interactive "e")
591    (let ((window (posn-window (event-start event))))    (let ((window (posn-window (event-start event))))
592      (if (or (not (window-minibuffer-p window))      (if (and (window-live-p window)
593              (minibuffer-window-active-p window))               (or (not (window-minibuffer-p window))
594                     (minibuffer-window-active-p window)))
595          (select-window window))))          (select-window window))))
596    
597  (define-key ctl-x-map "2" 'split-window-vertically)  (define-key ctl-x-map "2" 'split-window-vertically)

Legend:
Removed from v.1.86  
changed lines
  Added in v.1.86.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26