summaryrefslogtreecommitdiff
path: root/lisp/wid-edit.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2006-09-18 15:39:50 +0000
committerRichard M. Stallman <rms@gnu.org>2006-09-18 15:39:50 +0000
commit0fdbf6bc76533b093a74318d8ac6256a93e4c43a (patch)
treee12e3d47e0ad730b843ad885c48f9274fe79ca6d /lisp/wid-edit.el
parentf316efd97866668388e0de6e2e68ff73f7a1cbb8 (diff)
downloademacs-0fdbf6bc76533b093a74318d8ac6256a93e4c43a.tar.gz
(widget-button-click): Handle non-mouse-motion events
that might come in during mouse tracking.
Diffstat (limited to 'lisp/wid-edit.el')
-rw-r--r--lisp/wid-edit.el21
1 files changed, 12 insertions, 9 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index fc64dd5f361..e518fff34fa 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -959,15 +959,18 @@ Recommended as a parent keymap for modes using widgets.")
(push event unread-command-events)
(setq event oevent)
(throw 'button-press-cancelled t))
- (setq pos (widget-event-point event))
- (if (and pos
- (eq (get-char-property pos 'button)
- button))
- (when face
- (overlay-put overlay 'face pressed-face)
- (overlay-put overlay 'mouse-face pressed-face))
- (overlay-put overlay 'face face)
- (overlay-put overlay 'mouse-face mouse-face)))))
+ (unless (or (integerp event)
+ (memq (car event) '(switch-frame select-window))
+ (eq (car event) 'scroll-bar-movement))
+ (setq pos (widget-event-point event))
+ (if (and pos
+ (eq (get-char-property pos 'button)
+ button))
+ (when face
+ (overlay-put overlay 'face pressed-face)
+ (overlay-put overlay 'mouse-face pressed-face))
+ (overlay-put overlay 'face face)
+ (overlay-put overlay 'mouse-face mouse-face))))))
;; When mouse is released over the button, run
;; its action function.