]> git.eshelyaron.com Git - emacs.git/commitdiff
(widget-button-click): Handle non-mouse-motion events
authorRichard M. Stallman <rms@gnu.org>
Mon, 18 Sep 2006 15:39:50 +0000 (15:39 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 18 Sep 2006 15:39:50 +0000 (15:39 +0000)
that might come in during mouse tracking.

lisp/wid-edit.el

index fc64dd5f3617294cd5a2e16a3fe3c7995bb477c0..e518fff34fabdaf477aced1d627cfb6231f429ad 100644 (file)
@@ -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.