aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/wid-edit.el
diff options
context:
space:
mode:
authorGerd Moellmann <[email protected]>1999-11-09 13:43:40 +0000
committerGerd Moellmann <[email protected]>1999-11-09 13:43:40 +0000
commite006fe5ab6b8dc6a7fe7ffb3b45d253baaa31581 (patch)
tree3120ff19b5351ce63217902dde406d6c58b00a02 /lisp/wid-edit.el
parent3e9f8311f9858cb2fd07e495f025bcc42fcf24fc (diff)
(widget-button-click): Wrap with save-excursion
to restore track-mouse in the correct buffer.
Diffstat (limited to 'lisp/wid-edit.el')
-rw-r--r--lisp/wid-edit.el47
1 files changed, 24 insertions, 23 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 4ac7da42ef..c8d46533d4 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -928,29 +928,30 @@ This exists as a variable so it can be set locally in certain buffers.")
(mouse-face (overlay-get overlay 'mouse-face)))
(unwind-protect
(let ((track-mouse t))
- (overlay-put overlay
- 'face widget-button-pressed-face)
- (overlay-put overlay
- 'mouse-face widget-button-pressed-face)
- (unless (widget-apply button :mouse-down-action event)
- (while (not (button-release-event-p event))
- (setq event (widget-read-event)
- pos (widget-event-point event))
- (if (and pos
- (eq (get-char-property pos 'button)
- button))
- (progn
- (overlay-put overlay
- 'face
- widget-button-pressed-face)
- (overlay-put overlay
- 'mouse-face
- widget-button-pressed-face))
- (overlay-put overlay 'face face)
- (overlay-put overlay 'mouse-face mouse-face))))
- (when (and pos
- (eq (get-char-property pos 'button) button))
- (widget-apply-action button event)))
+ (save-excursion
+ (overlay-put overlay
+ 'face widget-button-pressed-face)
+ (overlay-put overlay
+ 'mouse-face widget-button-pressed-face)
+ (unless (widget-apply button :mouse-down-action event)
+ (while (not (button-release-event-p event))
+ (setq event (widget-read-event)
+ pos (widget-event-point event))
+ (if (and pos
+ (eq (get-char-property pos 'button)
+ button))
+ (progn
+ (overlay-put overlay
+ 'face
+ widget-button-pressed-face)
+ (overlay-put overlay
+ 'mouse-face
+ widget-button-pressed-face))
+ (overlay-put overlay 'face face)
+ (overlay-put overlay 'mouse-face mouse-face))))
+ (when (and pos
+ (eq (get-char-property pos 'button) button))
+ (widget-apply-action button event))))
(overlay-put overlay 'face face)
(overlay-put overlay 'mouse-face mouse-face)))
(let ((up t)