From ff0ac1fc75c7de1645b2d9ca63c5795fa9494215 Mon Sep 17 00:00:00 2001 From: Aleksei Date: Tue, 23 Dec 2014 00:26:21 +0300 Subject: [PATCH] Add function to disable mc undo into undo-list. When user enables mc mode we need to add function to disable mc mode into undo-list. When users starts to hit 'undo' at some point mc-mode will be disabled. --- features/multiple-cursors-core.feature | 12 ++++++++++++ multiple-cursors-core.el | 1 + 2 files changed, 13 insertions(+) diff --git a/features/multiple-cursors-core.feature b/features/multiple-cursors-core.feature index 3bd4103..73259f8 100644 --- a/features/multiple-cursors-core.feature +++ b/features/multiple-cursors-core.feature @@ -73,6 +73,18 @@ Feature: Multiple cursors core And I type "!" Then I should see "This !text contains the word !text twice" + Scenario: Undo until mc mode will be disabled + Given I have cursors at "text" in "This text contains the word text twice" + And I should have 2 cursors + When I press "C-g" + And I should have 1 cursors + And I press "C-_" + And I should have 2 cursors + And I press "C-_" + And I should have 1 cursors + And I type "!" + Then I should see "This !text contains the word text twice" + Scenario: Setting and popping mark Given I have cursors at "text" in "This text contains the word text twice" And I press "C-SPC" diff --git a/multiple-cursors-core.el b/multiple-cursors-core.el index a0d10ef..2c76b42 100644 --- a/multiple-cursors-core.el +++ b/multiple-cursors-core.el @@ -505,6 +505,7 @@ They are temporarily disabled when multiple-cursors are active.") (if multiple-cursors-mode (progn (mc/temporarily-disable-unsupported-minor-modes) + (push `(apply multiple-cursors-mode . ,(list 0)) buffer-undo-list) (add-hook 'pre-command-hook 'mc/make-a-note-of-the-command-being-run nil t) (add-hook 'post-command-hook 'mc/execute-this-command-for-all-cursors t t) (run-hooks 'multiple-cursors-mode-enabled-hook))