Function: window-at-x-y
window-at-x-y is a byte-compiled function defined in window.el.gz.
Signature
(window-at-x-y X Y &optional FRAME NO-OTHER)
Documentation
Return live window at coordinates X, Y on specified FRAME.
X and Y are FRAME-relative pixel coordinates. A coordinate on an edge shared by two windows is attributed to the window on the right (or below). Return nil if no such window can be found.
Tool-bar and tab-bar pseudo-windows are ignored by this function: if the specified coordinates are in any of these two windows, this function returns nil.
Optional argument FRAME must specify a live frame and defaults to
the selected one. Optional argument NO-OTHER non-nil means to
return nil if the window located at the specified coordinates has
a non-nil no-other-window parameter.
Source Code
;; Defined in /usr/src/emacs/lisp/window.el.gz
(defun window-at-x-y (x y &optional frame no-other)
"Return live window at coordinates X, Y on specified FRAME.
X and Y are FRAME-relative pixel coordinates. A coordinate on an
edge shared by two windows is attributed to the window on the
right (or below). Return nil if no such window can be found.
Tool-bar and tab-bar pseudo-windows are ignored by this function:
if the specified coordinates are in any of these two windows, this
function returns nil.
Optional argument FRAME must specify a live frame and defaults to
the selected one. Optional argument NO-OTHER non-nil means to
return nil if the window located at the specified coordinates has
a non-nil `no-other-window' parameter."
(setq frame (window-normalize-frame frame))
(let* ((root-edges (window-edges (frame-root-window frame) nil nil t))
(root-left (nth 2 root-edges))
(root-bottom (nth 3 root-edges)))
(catch 'window
(walk-window-tree
(lambda (window)
(let ((edges (window-edges window nil nil t)))
(when (and (>= x (nth 0 edges))
(or (< x (nth 2 edges)) (= x root-left))
(>= y (nth 1 edges))
(or (< y (nth 3 edges)) (= y root-bottom)))
(if (and no-other (window-parameter window 'no-other-window))
(throw 'window nil)
(throw 'window window)))))
frame))))