diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2020-08-10 09:04:12 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2020-08-10 09:04:12 -0700 |
commit | 98d66c02a69128b5dd0025dfe4194f8d632a6bdc (patch) | |
tree | fc3931357c62663bb4db9e7aa763282e53639c0b | |
parent | 077d76cd822357d334e18683827834f581f71f87 (diff) | |
download | dotfiles-98d66c02a69128b5dd0025dfe4194f8d632a6bdc.tar.gz |
factor out spw/get-mru-window
-rw-r--r-- | .emacs.d/init-spw.el | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/.emacs.d/init-spw.el b/.emacs.d/init-spw.el index 5c73e354..0fe98226 100644 --- a/.emacs.d/init-spw.el +++ b/.emacs.d/init-spw.el @@ -1432,6 +1432,16 @@ I use by default)." (kill-buffer-and-window))) (global-set-key [remap kill-buffer-and-window] #'spw/kill-buffer-and-window) +(defun spw/get-mru-window () + "Like `get-mru-window' but also consider the minibuffer." + (let (best-window best-time time) + (dolist (window (window-list-1) best-window) + (setq time (window-use-time window)) + (when (and (not (eq window (selected-window))) + (or (not best-time) (> time best-time))) + (setq best-time time) + (setq best-window window))))) + (defun spw/back-and-forth (interactive) (interactive "P") (cond @@ -1442,15 +1452,7 @@ I use by default)." ((one-window-p) (switch-to-buffer (other-buffer) nil t)) (t - (let (best-window best-time time) - (select-window - ;; this is like `get-mru-window' but we also consider the minibuffer - (dolist (window (window-list-1) best-window) - (setq time (window-use-time window)) - (when (and (not (eq window (selected-window))) - (or (not best-time) (> time best-time))) - (setq best-time time) - (setq best-window window)))))))) + (select-window (spw/get-mru-window))))) (global-set-key [remap other-window] #'spw/back-and-forth) (defconst spw/buffer-siblings-major-modes |