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.
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
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")
+
\f
;; Note:
;;
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.
(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)
((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
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
"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
(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.
(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.
(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.
(null val))
(set-default sym val))
:type windmove--default-keybindings-type
- :version "28.1"
- :group 'windmove)
+ :version "28.1")
\f
(provide 'windmove)