Function: hmouse-window-coordinates
hmouse-window-coordinates is an interactive and byte-compiled function
defined in hmouse-drv.el.
Signature
(hmouse-window-coordinates &optional EVENT)
Documentation
Return a list (window (x-chars . y-chars)) for optional EVENT.
Always ignores EVENT coordinates and uses current mouse position.
The area of the EVENT is utilized. If EVENT is not given and the
free variable assist-flag is non-nil, EVENT is set to
assist-key-release-args, otherwise, action-key-release-args.
The coordinates x-chars and y-chars are relative character coordinates within the window. If POSITION is not in a live window, return nil. Considers all windows on the selected frame's display.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hmouse-drv.el
(defun hmouse-window-coordinates (&optional event)
"Return a list (window (x-chars . y-chars)) for optional EVENT.
Always ignores EVENT coordinates and uses current mouse position.
The area of the EVENT is utilized. If EVENT is not given and the
free variable `assist-flag' is non-nil, EVENT is set to
`assist-key-release-args', otherwise, `action-key-release-args'.
The coordinates x-chars and y-chars are relative character
coordinates within the window. If POSITION is not in a live
window, return nil. Considers all windows on the selected frame's display."
(interactive)
(unless (eventp event)
(setq event (if assist-flag assist-key-release-args action-key-release-args)))
(let* ((position (mouse-absolute-pixel-position))
(pos-x (car position))
(pos-y (cdr position))
(window (hmouse-window-at-absolute-pixel-position position t))
(edges (when (window-live-p window) (window-edges window t t t)))
left top right bottom
frame)
(when edges
(setq left (nth 0 edges)
top (nth 1 edges)
right (nth 2 edges)
bottom (nth 3 edges))
(when (or (and event (eq (posn-area (event-start event)) 'mode-line))
(and (>= pos-x left) (<= pos-x right)
(>= pos-y top) (<= pos-y bottom)))
;; If position is in a live window, compute position's character
;; coordinates within the window and return the window with these
;; coordinates.
(setq frame (window-frame window)
pos-x (round (/ (- pos-x left) (frame-char-width frame)))
pos-y (round (/ (- pos-y top) (+ (frame-char-height frame)
(hmouse-vertical-line-spacing frame)))))))
(when (called-interactively-p 'interactive)
(message "%s at %s coordinates (%s . %s)"
(if edges window "No live Emacs window")
(if frame "character" "absolute pixel")
pos-x pos-y))
(when edges (list window (cons pos-x pos-y)))))