Mercurial > emacs
comparison lisp/wid-edit.el @ 72959:1a9df4096f4e
(widget-button-click): Handle non-mouse-motion events
that might come in during mouse tracking.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 18 Sep 2006 15:39:50 +0000 |
parents | bb4dc0e56e88 |
children | 1a9d85f409b8 b5c13d1564a9 |
comparison
equal
deleted
inserted
replaced
72958:3b2d4cd42aaa | 72959:1a9df4096f4e |
---|---|
957 (setq event (read-event)) | 957 (setq event (read-event)) |
958 (when (and mouse-1 (mouse-movement-p event)) | 958 (when (and mouse-1 (mouse-movement-p event)) |
959 (push event unread-command-events) | 959 (push event unread-command-events) |
960 (setq event oevent) | 960 (setq event oevent) |
961 (throw 'button-press-cancelled t)) | 961 (throw 'button-press-cancelled t)) |
962 (setq pos (widget-event-point event)) | 962 (unless (or (integerp event) |
963 (if (and pos | 963 (memq (car event) '(switch-frame select-window)) |
964 (eq (get-char-property pos 'button) | 964 (eq (car event) 'scroll-bar-movement)) |
965 button)) | 965 (setq pos (widget-event-point event)) |
966 (when face | 966 (if (and pos |
967 (overlay-put overlay 'face pressed-face) | 967 (eq (get-char-property pos 'button) |
968 (overlay-put overlay 'mouse-face pressed-face)) | 968 button)) |
969 (overlay-put overlay 'face face) | 969 (when face |
970 (overlay-put overlay 'mouse-face mouse-face))))) | 970 (overlay-put overlay 'face pressed-face) |
971 (overlay-put overlay 'mouse-face pressed-face)) | |
972 (overlay-put overlay 'face face) | |
973 (overlay-put overlay 'mouse-face mouse-face)))))) | |
971 | 974 |
972 ;; When mouse is released over the button, run | 975 ;; When mouse is released over the button, run |
973 ;; its action function. | 976 ;; its action function. |
974 (when (and pos | 977 (when (and pos |
975 (eq (get-char-property pos 'button) button)) | 978 (eq (get-char-property pos 'button) button)) |