Function: hmouse-key-release-args-emacs
hmouse-key-release-args-emacs is a byte-compiled function defined in
hmouse-drv.el.
Signature
(hmouse-key-release-args-emacs EVENT)
Documentation
For GNU Emacs, return a possibly modified version of EVENT as a list.
For mouse drags and double and triple clicks, remove any depress location, compute the actual release location and include that.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hmouse-drv.el
(defun hmouse-key-release-args-emacs (event)
"For GNU Emacs, return a possibly modified version of EVENT as a list.
For mouse drags and double and triple clicks, remove any depress location,
compute the actual release location and include that."
(if (integerp event)
(list event)
(let ((ev-type-str (and (listp event) (symbol-name (car event)))))
(if (or (and ev-type-str
(string-match "\\(double\\|triple\\)-mouse" ev-type-str))
(not (= (length event) 3)))
event
(let ((pos (event-end event))
coords window window-and-char-coords)
(when (and ev-type-str (string-match "drag-mouse" ev-type-str)
;; end of drag event; If drag crossed frames, the location
;; will contain the frame of the depress point and
;; some relative coordinates; change these to the window of
;; release and window's character coordinates if within a window
;; and to nil if outside of Emacs (as best we can tell).
(framep (posn-window pos)))
(setq window-and-char-coords (hmouse-window-coordinates event)
window (car window-and-char-coords)
coords (cadr window-and-char-coords))
;; Modify the values in the event-end structure even if no
;; valid window was found.
(setcar pos window)
(setcar (nthcdr 2 pos) coords)))
;; Remove depress coordinates and send only original release coordinates.
(list (car event) (nth 2 event))))))