Mercurial > emacs
comparison lisp/wid-edit.el @ 68892:93b583aac002
* wid-edit.el (widget-button-click): Use :pressed-face property
for overlay face, if it exists.
* cus-edit.el (custom-manual, custom-add-see-also)
(custom-add-parent-links, custom-group-link): Add :pressed-face
property to links.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 14 Feb 2006 20:16:04 +0000 |
parents | 3bd95f4f2941 |
children | f484ff9069d6 |
comparison
equal
deleted
inserted
replaced
68891:ca6b93e0f08b | 68892:93b583aac002 |
---|---|
927 (save-selected-window | 927 (save-selected-window |
928 (select-window (posn-window (event-start event))) | 928 (select-window (posn-window (event-start event))) |
929 (save-excursion | 929 (save-excursion |
930 (goto-char (posn-point (event-start event))) | 930 (goto-char (posn-point (event-start event))) |
931 (let* ((overlay (widget-get button :button-overlay)) | 931 (let* ((overlay (widget-get button :button-overlay)) |
932 (pressed-face (or (widget-get button :pressed-face) | |
933 widget-button-pressed-face)) | |
932 (face (overlay-get overlay 'face)) | 934 (face (overlay-get overlay 'face)) |
933 (mouse-face (overlay-get overlay 'mouse-face))) | 935 (mouse-face (overlay-get overlay 'mouse-face))) |
934 (unwind-protect | 936 (unwind-protect |
935 ;; Read events, including mouse-movement events | 937 ;; Read events, including mouse-movement events |
936 ;; until we receive a release event. Highlight/ | 938 ;; until we receive a release event. Highlight/ |
937 ;; unhighlight the button the mouse was initially | 939 ;; unhighlight the button the mouse was initially |
938 ;; on when we move over it. | 940 ;; on when we move over it. |
939 (save-excursion | 941 (save-excursion |
940 (when face ; avoid changing around image | 942 (when face ; avoid changing around image |
941 (overlay-put overlay | 943 (overlay-put overlay 'face pressed-face) |
942 'face widget-button-pressed-face) | 944 (overlay-put overlay 'mouse-face pressed-face)) |
943 (overlay-put overlay | |
944 'mouse-face widget-button-pressed-face)) | |
945 (unless (widget-apply button :mouse-down-action event) | 945 (unless (widget-apply button :mouse-down-action event) |
946 (let ((track-mouse t)) | 946 (let ((track-mouse t)) |
947 (while (not (widget-button-release-event-p event)) | 947 (while (not (widget-button-release-event-p event)) |
948 (setq event (read-event) | 948 (setq event (read-event) |
949 pos (widget-event-point event)) | 949 pos (widget-event-point event)) |
950 (if (and pos | 950 (if (and pos |
951 (eq (get-char-property pos 'button) | 951 (eq (get-char-property pos 'button) |
952 button)) | 952 button)) |
953 (when face | 953 (when face |
954 (overlay-put overlay | 954 (overlay-put overlay 'face pressed-face) |
955 'face | 955 (overlay-put overlay 'mouse-face pressed-face)) |
956 widget-button-pressed-face) | |
957 (overlay-put overlay | |
958 'mouse-face | |
959 widget-button-pressed-face)) | |
960 (overlay-put overlay 'face face) | 956 (overlay-put overlay 'face face) |
961 (overlay-put overlay 'mouse-face mouse-face))))) | 957 (overlay-put overlay 'mouse-face mouse-face))))) |
962 | 958 |
963 ;; When mouse is released over the button, run | 959 ;; When mouse is released over the button, run |
964 ;; its action function. | 960 ;; its action function. |