diff options
| author | 2016-10-25 01:24:16 +0000 | |
|---|---|---|
| committer | 2016-10-25 01:24:18 +0000 | |
| commit | c69f693216d548876ced98c14f6a9e7e0d1acf04 (patch) | |
| tree | 9e77e290ee447b4bc5cafb345f2032c574b03a7a | |
| parent | 46ca471d2553ec0d3e6cb1a8ec5e782eb333fd8f (diff) | |
| parent | fa2d7b1f21641a94134906bbadcf1cdcef54697e (diff) | |
Merge "Fix: Undo for drag and drop."
| -rw-r--r-- | core/java/android/widget/Editor.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index cbac6970c442..5eaabe7c137b 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -2345,7 +2345,7 @@ public class Editor { } mCorrectionHighlighter.highlight(info); - mUndoInputFilter.onCommitCorrection(); + mUndoInputFilter.freezeLastEdit(); } void onScrollChanged() { @@ -2477,6 +2477,7 @@ public class Editor { } mTextView.beginBatchEdit(); + mUndoInputFilter.freezeLastEdit(); try { final int offset = mTextView.getOffsetForPosition(event.getX(), event.getY()); Object localState = event.getLocalState(); @@ -2526,6 +2527,7 @@ public class Editor { } } finally { mTextView.endBatchEdit(); + mUndoInputFilter.freezeLastEdit(); } } @@ -5845,7 +5847,7 @@ public class Editor { return null; } - void onCommitCorrection() { + void freezeLastEdit() { mEditor.mUndoManager.beginUpdate("Edit text"); EditOperation lastEdit = getLastEdit(); if (lastEdit != null) { @@ -5906,7 +5908,6 @@ public class Editor { // Add this as the first edit. if (DEBUG_UNDO) Log.d(TAG, "filter: adding first op " + edit); um.addOperation(edit, UndoManager.MERGE_MODE_NONE); - mPreviousOperationWasInSameBatchEdit = mIsUserEdit; } else if (mergeMode == MERGE_EDIT_MODE_FORCE_MERGE) { // Forced merges take priority because they could be the result of a non-user-edit // change and this case should not create a new undo operation. @@ -5918,7 +5919,6 @@ public class Editor { if (DEBUG_UNDO) Log.d(TAG, "non-user edit, new op " + edit); um.commitState(mEditor.mUndoOwner); um.addOperation(edit, UndoManager.MERGE_MODE_NONE); - mPreviousOperationWasInSameBatchEdit = mIsUserEdit; } else if (mergeMode == MERGE_EDIT_MODE_NORMAL && lastEdit.mergeWith(edit)) { // Merge succeeded, nothing else to do. if (DEBUG_UNDO) Log.d(TAG, "filter: merge succeeded, created " + lastEdit); @@ -5927,8 +5927,8 @@ public class Editor { if (DEBUG_UNDO) Log.d(TAG, "filter: merge failed, adding " + edit); um.commitState(mEditor.mUndoOwner); um.addOperation(edit, UndoManager.MERGE_MODE_NONE); - mPreviousOperationWasInSameBatchEdit = mIsUserEdit; } + mPreviousOperationWasInSameBatchEdit = mIsUserEdit; um.endUpdate(); } |