From: Juri Linkov Date: Sun, 12 Sep 2021 17:55:57 +0000 (+0300) Subject: Allow region-related context menu to be used on selected region with one click X-Git-Tag: emacs-28.0.90~1035 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=aa33e38e21e09045bc2ab598e34f3c1510442cb0;p=emacs.git Allow region-related context menu to be used on selected region with one click * lisp/mouse.el (mouse-drag-track): Don't deactivate the mark for the context menu invoked by down-mouse-3. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg01577.html --- diff --git a/lisp/mouse.el b/lisp/mouse.el index bd11ec50d57..c107322815a 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1583,8 +1583,15 @@ The region will be defined with mark and point." t (lambda () (setq track-mouse old-track-mouse) (setq auto-hscroll-mode auto-hscroll-mode-saved) - (deactivate-mark) - (pop-mark))))) + ;; Don't deactivate the mark when the context menu was invoked + ;; by down-mouse-3 immediately after down-mouse-1 and without + ;; releasing the mouse button with mouse-1. This allows to use + ;; region-related context menu to operate on the selected region. + (unless (and context-menu-mode + (eq (car-safe (aref (this-command-keys-vector) 0)) + 'down-mouse-3)) + (deactivate-mark) + (pop-mark)))))) (defun mouse--drag-set-mark-and-point (start click click-count) (let* ((range (mouse-start-end start click click-count))