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.