summaryrefslogtreecommitdiff
path: root/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java')
-rw-r--r--platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java
index 1286b6815fcf..529da7371bf7 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/RollbackLineStatusAction.java
@@ -12,8 +12,6 @@
*/
package com.intellij.openapi.vcs.ex;
-import com.intellij.icons.AllIcons;
-import com.intellij.idea.ActionsBundle;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.application.ApplicationManager;
@@ -73,6 +71,15 @@ public class RollbackLineStatusAction extends DumbAwareAction {
BitSet lines = new BitSet(totalLines + 1);
List<Caret> carets = editor.getCaretModel().getAllCarets();
+
+ if (carets.size() == 1) {
+ Caret caret = carets.get(0);
+ if (caret.getSelectionStart() == 0 && caret.getSelectionEnd() == document.getTextLength()) {
+ doRollback(tracker);
+ return;
+ }
+ }
+
for (Caret caret : carets) {
if (caret.hasSelection()) {
int line1 = editor.offsetToLogicalPosition(caret.getSelectionStart()).line;
@@ -107,6 +114,15 @@ public class RollbackLineStatusAction extends DumbAwareAction {
});
}
+ private static void doRollback(@NotNull final LineStatusTracker tracker) {
+ execute(tracker, new Runnable() {
+ @Override
+ public void run() {
+ tracker.rollbackAllChanges();
+ }
+ });
+ }
+
private static void execute(@NotNull final LineStatusTracker tracker, @NotNull final Runnable task) {
CommandProcessor.getInstance().executeCommand(tracker.getProject(), new Runnable() {
public void run() {