branch: elpa/multiple-cursors commit 4975afedb35ab2a73fd37bb5229becea447787ae Author: Johannes Lippmann <c...@schauderbasis.de> Commit: Magnar Sveen <magn...@gmail.com>
Run hook when mc is disabled --- mc-mark-more.el | 12 +++++++++--- mc-separate-operations.el | 4 +++- multiple-cursors-core.el | 17 +++++++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/mc-mark-more.el b/mc-mark-more.el index 6c0276c..9cbf67f 100644 --- a/mc-mark-more.el +++ b/mc-mark-more.el @@ -355,7 +355,9 @@ With zero ARG, skip the last one and mark next." (when point-first (exchange-point-and-mark))))) (if (> (mc/num-cursors) 1) (multiple-cursors-mode 1) - (multiple-cursors-mode 0))) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)))) (defun mc--select-thing-at-point (thing) (let ((bound (bounds-of-thing-at-point thing))) @@ -402,7 +404,9 @@ With zero ARG, skip the last one and mark next." (mc/pop-state-from-overlay first))) (if (> (mc/num-cursors) 1) (multiple-cursors-mode 1) - (multiple-cursors-mode 0)))))) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook))))))) ;;;###autoload (defun mc/mark-all-in-region-regexp (beg end) @@ -427,7 +431,9 @@ With zero ARG, skip the last one and mark next." (error "Search failed for %S" search))) (goto-char (match-end 0)) (if (< (mc/num-cursors) 3) - (multiple-cursors-mode 0) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)) (mc/pop-state-from-overlay (mc/furthest-cursor-before-point)) (multiple-cursors-mode 1)))))) diff --git a/mc-separate-operations.el b/mc-separate-operations.el index f123cca..24fcd8f 100644 --- a/mc-separate-operations.el +++ b/mc-separate-operations.el @@ -106,7 +106,9 @@ (progn (mc/mark-next-lines 1) (mc/reverse-regions) - (multiple-cursors-mode 0)) + (multiple-cursors-mode 0) + (multiple-cursors-mode-disabled-hook) + ) (unless (use-region-p) (mc/execute-command-for-all-cursors 'mark-sexp)) (setq mc--strings-to-replace (nreverse (mc--ordered-region-strings))) diff --git a/multiple-cursors-core.el b/multiple-cursors-core.el index 6db87a8..e738504 100644 --- a/multiple-cursors-core.el +++ b/multiple-cursors-core.el @@ -433,7 +433,9 @@ the original cursor, to inform about the lack of support." (unless mc--executing-command-for-fake-cursor (if (eq 1 (mc/num-cursors)) ;; no fake cursors? disable mc-mode - (multiple-cursors-mode 0) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)) (when this-original-command (let ((original-command (or mc--this-command (command-remapping this-original-command) @@ -487,7 +489,9 @@ you should disable multiple-cursors-mode." "Deactivate mark if there are any active, otherwise exit multiple-cursors-mode." (interactive) (if (not (use-region-p)) - (multiple-cursors-mode 0) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)) (deactivate-mark))) (defun mc/repeat-command () @@ -588,13 +592,18 @@ They are temporarily disabled when multiple-cursors are active.") (mc/enable-temporarily-disabled-minor-modes) (run-hooks 'multiple-cursors-mode-disabled-hook))) -(add-hook 'after-revert-hook #'(lambda () (multiple-cursors-mode 0))) +(add-hook 'after-revert-hook + #'(lambda () (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)))) (defun mc/maybe-multiple-cursors-mode () "Enable multiple-cursors-mode if there is more than one currently active cursor." (if (> (mc/num-cursors) 1) (multiple-cursors-mode 1) - (multiple-cursors-mode 0))) + (progn + (multiple-cursors-mode 0) + (run-hooks 'multiple-cursors-mode-disabled-hook)))) (defmacro unsupported-cmd (cmd msg) "Adds command to list of unsupported commands and prevents it