Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c69f6932 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Fix: Undo for drag and drop."

parents 46ca471d fa2d7b1f
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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();
        }