comparison lisp/wid-edit.el @ 26386:c147359a515b

(widget-button-click): Wrap with save-excursion to restore track-mouse in the correct buffer.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 09 Nov 1999 13:42:34 +0000
parents c1a7a52bbfea
children f894902025ff
comparison
equal deleted inserted replaced
26385:e52f7eedc5b0 26386:c147359a515b
926 (let* ((overlay (widget-get button :button-overlay)) 926 (let* ((overlay (widget-get button :button-overlay))
927 (face (overlay-get overlay 'face)) 927 (face (overlay-get overlay 'face))
928 (mouse-face (overlay-get overlay 'mouse-face))) 928 (mouse-face (overlay-get overlay 'mouse-face)))
929 (unwind-protect 929 (unwind-protect
930 (let ((track-mouse t)) 930 (let ((track-mouse t))
931 (overlay-put overlay 931 (save-excursion
932 'face widget-button-pressed-face) 932 (overlay-put overlay
933 (overlay-put overlay 933 'face widget-button-pressed-face)
934 'mouse-face widget-button-pressed-face) 934 (overlay-put overlay
935 (unless (widget-apply button :mouse-down-action event) 935 'mouse-face widget-button-pressed-face)
936 (while (not (button-release-event-p event)) 936 (unless (widget-apply button :mouse-down-action event)
937 (setq event (widget-read-event) 937 (while (not (button-release-event-p event))
938 pos (widget-event-point event)) 938 (setq event (widget-read-event)
939 (if (and pos 939 pos (widget-event-point event))
940 (eq (get-char-property pos 'button) 940 (if (and pos
941 button)) 941 (eq (get-char-property pos 'button)
942 (progn 942 button))
943 (overlay-put overlay 943 (progn
944 'face 944 (overlay-put overlay
945 widget-button-pressed-face) 945 'face
946 (overlay-put overlay 946 widget-button-pressed-face)
947 'mouse-face 947 (overlay-put overlay
948 widget-button-pressed-face)) 948 'mouse-face
949 (overlay-put overlay 'face face) 949 widget-button-pressed-face))
950 (overlay-put overlay 'mouse-face mouse-face)))) 950 (overlay-put overlay 'face face)
951 (when (and pos 951 (overlay-put overlay 'mouse-face mouse-face))))
952 (eq (get-char-property pos 'button) button)) 952 (when (and pos
953 (widget-apply-action button event))) 953 (eq (get-char-property pos 'button) button))
954 (widget-apply-action button event))))
954 (overlay-put overlay 'face face) 955 (overlay-put overlay 'face face)
955 (overlay-put overlay 'mouse-face mouse-face))) 956 (overlay-put overlay 'mouse-face mouse-face)))
956 (let ((up t) 957 (let ((up t)
957 command) 958 command)
958 ;; Find the global command to run, and check whether it 959 ;; Find the global command to run, and check whether it