diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-08-17 16:56:19 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-08-17 16:56:19 +0000 |
commit | 1c9df23f8c7c2315348612493be0f3eb74411360 (patch) | |
tree | 9c833145703f27266770711347b607db328df6e7 /lisp/mouse.el | |
parent | e4269dcbc749066c7bc1862b04d19ed7b3a95fb8 (diff) | |
download | emacs-1c9df23f8c7c2315348612493be0f3eb74411360.tar.gz |
(mouse-drag-region): Don't call mouse-set-region-1
if mark is gone or no longer active or if we changed buffers.
Diffstat (limited to 'lisp/mouse.el')
-rw-r--r-- | lisp/mouse.el | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/mouse.el b/lisp/mouse.el index 7ffc98c7a9d..c10101bf64b 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -594,8 +594,15 @@ remains active. Otherwise, it remains until the next input event." (push-mark region-commencement t t) (goto-char region-termination) (copy-region-as-kill (point) (mark t)) - (mouse-show-mark) - (mouse-set-region-1)) + (let ((buffer (current-buffer))) + (mouse-show-mark) + ;; mouse-show-mark can call read-event, + ;; and that means the Emacs server could switch buffers + ;; under us. If that happened, + ;; avoid trying to use the region. + (and (mark t) mark-active + (eq buffer (current-buffer)) + (mouse-set-region-1)))) (goto-char (overlay-end mouse-drag-overlay)) (setq this-command 'mouse-set-point) (delete-overlay mouse-drag-overlay)))) |