1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-03 12:31:32 -08:00

(window--splittable-p, window--try-to-split-window):

Don't use with-selected-window to avoid messing up get-lru-window.
This commit is contained in:
Martin Rudalics 2008-06-10 07:45:23 +00:00
parent faeb9c70ae
commit 71b50c9351
2 changed files with 12 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2008-06-10 Martin Rudalics <rudalics@gmx.at>
* window.el (window--splittable-p, window--try-to-split-window):
Don't use with-selected-window to avoid messing up get-lru-window.
2008-06-10 Glenn Morris <rgm@gnu.org>
* subr.el (locate-library): Doc fix.

View file

@ -806,7 +806,7 @@ hold:
- When WINDOW is split evenly, the emanating windows are at least
`window-min-width' or two (whichever is larger) columns wide."
(when (window-live-p window)
(with-selected-window window
(with-current-buffer (window-buffer window)
(if horizontal
;; A window can be split horizontally when its width is not
;; fixed, it is at least `split-width-threshold' columns wide
@ -847,11 +847,11 @@ by `split-window' or `split-window-preferred-function'."
(and (window--splittable-p window t)
;; Split window horizontally.
(split-window window nil t))
(and (with-selected-window window
(one-window-p 'nomini))
;; If WINDOW is the only window on its frame, attempt to
;; split it vertically disregarding the current value of
;; `split-height-threshold'.
(and (eq window (frame-root-window (window-frame window)))
(not (window-minibuffer-p window))
;; If WINDOW is the only window on its frame and not the
;; minibuffer window, attempt to split it vertically
;; disregarding the value of `split-height-threshold'.
(let ((split-height-threshold 0))
(window--splittable-p window)
(split-window window)))))))
@ -1013,7 +1013,7 @@ consider all visible or iconified frames."
(setq frame-to-use (last-nonminibuffer-frame))
(window--frame-usable-p frame-to-use)
(not (frame-parameter frame-to-use 'unsplittable))))
;; Attempt to split largest or most recently used window.
;; Attempt to split largest or least recently used window.
(setq window-to-use
(or (window--try-to-split-window
(get-largest-window frame-to-use t))