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.
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.
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))))