From 40eb74e3e44aa72948db92dc58a8769153fd83f3 Mon Sep 17 00:00:00 2001 From: Ingo Lohmar Date: Tue, 1 Mar 2016 20:31:47 +0100 Subject: [PATCH] Extend mc/add-cursor-on-click to toggle fake cursors - rename function accordingly and add alias --- mc-mark-more.el | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mc-mark-more.el b/mc-mark-more.el index 68addce..f63887d 100644 --- a/mc-mark-more.el +++ b/mc-mark-more.el @@ -576,8 +576,9 @@ If the region is inactive or on a single line, it will behave like (<= (point) end)))) ;;;###autoload -(defun mc/add-cursor-on-click (event) - "Add a cursor where you click." +(defun mc/toggle-cursor-on-click (event) + "Add a cursor where you click, or remove a fake cursor that is +already there." (interactive "e") (mouse-minibuffer-check event) ;; Use event-end in case called from mouse-drag-region. @@ -589,9 +590,16 @@ If the region is inactive or on a single line, it will behave like (if (numberp (posn-point position)) (save-excursion (goto-char (posn-point position)) - (mc/create-fake-cursor-at-point))) + (let ((existing (mc/last-fake-cursor-before (point)))) + (if (and existing + (eq (overlay-get existing 'point) (point))) + (mc/remove-fake-cursor existing) + (mc/create-fake-cursor-at-point))))) (mc/maybe-multiple-cursors-mode))) +;;;###autoload +(defalias 'mc/add-cursor-on-click 'mc/toggle-cursor-on-click) + ;;;###autoload (defun mc/mark-sgml-tag-pair () "Mark the tag we're in and its pair for renaming."