915 |
;; until we receive a release event. Highlight/ |
;; until we receive a release event. Highlight/ |
916 |
;; unhighlight the button the mouse was initially |
;; unhighlight the button the mouse was initially |
917 |
;; on when we move over it. |
;; on when we move over it. |
918 |
(let ((track-mouse t)) |
(save-excursion |
919 |
(save-excursion |
(when face ; avoid changing around image |
920 |
(when face ; avoid changing around image |
(overlay-put overlay |
921 |
(overlay-put overlay |
'face widget-button-pressed-face) |
922 |
'face widget-button-pressed-face) |
(overlay-put overlay |
923 |
(overlay-put overlay |
'mouse-face widget-button-pressed-face)) |
924 |
'mouse-face widget-button-pressed-face)) |
(unless (widget-apply button :mouse-down-action event) |
925 |
(unless (widget-apply button :mouse-down-action event) |
(let ((track-mouse t)) |
926 |
(while (not (widget-button-release-event-p event)) |
(while (not (widget-button-release-event-p event)) |
927 |
(setq event (read-event) |
(setq event (read-event) |
928 |
pos (widget-event-point event)) |
pos (widget-event-point event)) |
937 |
'mouse-face |
'mouse-face |
938 |
widget-button-pressed-face)) |
widget-button-pressed-face)) |
939 |
(overlay-put overlay 'face face) |
(overlay-put overlay 'face face) |
940 |
(overlay-put overlay 'mouse-face mouse-face)))) |
(overlay-put overlay 'mouse-face mouse-face))))) |
941 |
|
|
942 |
;; When mouse is released over the button, run |
;; When mouse is released over the button, run |
943 |
;; its action function. |
;; its action function. |
944 |
(when (and pos |
(when (and pos |
945 |
(eq (get-char-property pos 'button) button)) |
(eq (get-char-property pos 'button) button)) |
946 |
(widget-apply-action button event)))) |
(widget-apply-action button event))) |
947 |
(overlay-put overlay 'face face) |
(overlay-put overlay 'face face) |
948 |
(overlay-put overlay 'mouse-face mouse-face)))) |
(overlay-put overlay 'mouse-face mouse-face)))) |
949 |
|
|