Function: widget-button-click
widget-button-click is an interactive and byte-compiled function
defined in wid-edit.el.gz.
Signature
(widget-button-click EVENT)
Documentation
Invoke the button that the mouse is pointing at.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/wid-edit.el.gz
(defun widget-button-click (event)
"Invoke the button that the mouse is pointing at."
(interactive "e")
(if (widget-event-point event)
(let* ((mouse-1 (memq (event-basic-type event) '(mouse-1 down-mouse-1)))
(pos (widget-event-point event))
(start (event-start event))
(button (get-char-property
pos 'button (and (windowp (posn-window start))
(window-buffer (posn-window start))))))
(when (or (null button)
(widget-button--check-and-call-button event button))
(let ((up (not (eq (car event) 'touchscreen-begin)))
command)
;; Mouse click not on a widget button. Find the global
;; command to run, and check whether it is bound to an
;; up event.
(cond
((eq (car event) 'touchscreen-begin)
(setq command 'touch-screen-handle-touch))
(mouse-1 (cond ((setq command ;down event
(lookup-key widget-global-map [down-mouse-1]))
(setq up nil))
((setq command ;up event
(lookup-key widget-global-map [mouse-1])))))
(t (cond ((setq command ;down event
(lookup-key widget-global-map [down-mouse-2]))
(setq up nil))
((setq command ;up event
(lookup-key widget-global-map [mouse-2]))))))
(when up
;; Don't execute up events twice.
(while (not (and (widget-button-release-event-p event)))
(setq event (read--potential-mouse-event))))
(when command
(call-interactively command)))))
(message "You clicked somewhere weird.")))