diff options
author | pillule <pillule@riseup.net> | 2021-06-16 02:23:13 +0300 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2021-06-16 02:23:13 +0300 |
commit | 0367d17482804cd4a47d6fcf0201cdded7fc88dc (patch) | |
tree | f42b5090723a38fcab0643404f067c6a6e5c7a2e /lisp/windmove.el | |
parent | a8721a333d5cf9080406bd4d9f723bda7a4a8402 (diff) | |
download | emacs-0367d17482804cd4a47d6fcf0201cdded7fc88dc.tar.gz emacs-0367d17482804cd4a47d6fcf0201cdded7fc88dc.tar.bz2 emacs-0367d17482804cd4a47d6fcf0201cdded7fc88dc.zip |
User option to select 'no-other-window' with windmove (bug#48916)
* lisp/windmove.el (windmove-wrap-around): Remove superfluous :group tag.
(windmove-create-window): Remove superfluous :group tag.
(windmove-window-distance-delta): Remove superfluous :group tag.
(windmove-allow-all-windows): Add new user option to allow the commands
of windmove to target windows with the 'no-other-window parameter.
(windmove-find-other-window): Use windmove-allow-all-windows.
(windmove-display-no-select): Remove superfluous :group tag.
(windmove-display-in-direction): Use windmove-allow-all-windows.
(windmove-delete-in-direction): Use windmove-allow-all-windows.
(windmove-swap-states-in-direction): Use windmove-allow-all-windows.
(windmove-default-keybindings): Remove superfluous :group tag.
(windmove-display-default-keybindings): Remove superfluous :group tag.
(windmove-delete-default-keybindings): Remove superfluous :group tag.
(windmove-swap-states-default-keybindings): Remove superfluous :group tag.
Diffstat (limited to 'lisp/windmove.el')
-rw-r--r-- | lisp/windmove.el | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/lisp/windmove.el b/lisp/windmove.el index f5589036812..ac146ab2dc7 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el @@ -138,8 +138,7 @@ If this variable is set to t, moving left from the leftmost window in a frame will find the rightmost one, and similarly for the other directions. The minibuffer is skipped over in up/down movements if it is inactive." - :type 'boolean - :group 'windmove) + :type 'boolean) (defcustom windmove-create-window nil "Whether movement off the edge of the frame creates a new window. @@ -147,7 +146,6 @@ If this variable is set to t, moving left from the leftmost window in a frame will create a new window on the left, and similarly for the other directions." :type 'boolean - :group 'windmove :version "27.1") ;; If your Emacs sometimes places an empty column between two adjacent @@ -157,11 +155,18 @@ directions." Measured in characters either horizontally or vertically; setting this to a value larger than 1 may be useful in getting around window- placement bugs in old versions of Emacs." - :type 'number - :group 'windmove) + :type 'number) (make-obsolete-variable 'windmove-window-distance-delta "no longer used." "27.1") +(defcustom windmove-allow-all-windows nil + "Whether the windmove commands are allowed to target all type of windows. +If this variable is set to non-nil, all windmove commmands will +ignore the `no-other-window' parameter applied by `display-buffer-alist' +or `set-window-parameter'." + :type 'boolean + :version "28.1") + ;; Note: ;; @@ -342,7 +347,8 @@ WINDOW must be a live window and defaults to the selected one. Optional ARG, if negative, means to use the right or bottom edge of WINDOW as reference position, instead of `window-point'; if positive, use the left or top edge of WINDOW as reference point." - (window-in-direction dir window nil arg windmove-wrap-around t)) + (window-in-direction dir window windmove-allow-all-windows + arg windmove-wrap-around t)) ;; Selects the window that's hopefully at the location returned by ;; `windmove-find-other-window', or screams if there's no window there. @@ -480,7 +486,6 @@ Default value of MODIFIERS is `shift'." (defcustom windmove-display-no-select nil "Whether the window should be selected after displaying the buffer in it." :type 'boolean - :group 'windmove :version "27.1") (defun windmove-display-in-direction (dir &optional arg) @@ -517,7 +522,7 @@ When `switch-to-buffer-obey-display-actions' is non-nil, ((eq dir 'same-window) (selected-window)) (t (window-in-direction - dir nil nil + dir nil windmove-allow-all-windows (and arg (prefix-numeric-value arg)) windmove-wrap-around 'nomini))))) (unless window @@ -606,8 +611,8 @@ With `M-0' prefix, delete the selected window and select the window at direction DIR. When `windmove-wrap-around' is non-nil, takes the window from the opposite side of the frame." - (let ((other-window (window-in-direction dir nil nil arg - windmove-wrap-around 'nomini))) + (let ((other-window (window-in-direction dir nil windmove-allow-all-windows + arg windmove-wrap-around 'nomini))) (cond ((null other-window) (user-error "No window %s from selected window" dir)) (t @@ -680,8 +685,8 @@ Default value of PREFIX is `C-x' and MODIFIERS is `shift'." "Swap the states of the selected window and the window at direction DIR. When `windmove-wrap-around' is non-nil, takes the window from the opposite side of the frame." - (let ((other-window (window-in-direction dir nil nil nil - windmove-wrap-around 'nomini))) + (let ((other-window (window-in-direction dir nil windmove-allow-all-windows + nil windmove-wrap-around 'nomini))) (cond ((or (null other-window) (window-minibuffer-p other-window)) (user-error "No window %s from selected window" dir)) (t @@ -761,8 +766,7 @@ See `windmove-default-keybindings' for more detail." (null val)) (set-default sym val)) :type windmove--default-keybindings-type - :version "28.1" - :group 'windmove) + :version "28.1") (defcustom windmove-display-default-keybindings nil "Default keybindings for windmove directional buffer display commands. @@ -780,8 +784,7 @@ See `windmove-display-default-keybindings' for more detail." (null val)) (set-default sym val)) :type windmove--default-keybindings-type - :version "28.1" - :group 'windmove) + :version "28.1") (defcustom windmove-delete-default-keybindings nil "Default keybindings for windmove directional window deletion commands. @@ -796,8 +799,7 @@ See `windmove-delete-default-keybindings' for more detail." (null val)) (set-default sym val)) :type windmove--default-keybindings-type - :version "28.1" - :group 'windmove) + :version "28.1") (defcustom windmove-swap-states-default-keybindings nil "Default keybindings for windmove's directional window swap-state commands. @@ -812,8 +814,7 @@ See `windmove-swap-states-default-keybindings' for more detail." (null val)) (set-default sym val)) :type windmove--default-keybindings-type - :version "28.1" - :group 'windmove) + :version "28.1") (provide 'windmove) |