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

Commit 14568c3f authored by Gilles Debunne's avatar Gilles Debunne
Browse files

Fixes around extract mode

Stop selection mode after Edit/Copy while in extracted mode.

The selection mode was started by a long press in the ExtractedEditText.
Selection Copy in the menu simply sends the id to the context menu.
SelectionMode is not stopped in the underlying text since it was not
started there. Stop it directly in the ExtractedEditText.

Cut and paste do stop the mode because the text is modified.

Change-Id: Id7dbfa99de404c4eb85ced9627c99af4895ac628
parent ade3289b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ public class ExtractEditText extends EditText {
    
    @Override public boolean onTextContextMenuItem(int id) {
        if (mIME != null && mIME.onExtractTextContextMenuItem(id)) {
            // Mode was started on Extracted, needs to be stopped here.
            // Cut and paste will change the text, which stops selection mode.
            if (id == android.R.id.copy) stopSelectionActionMode();
            return true;
        }
        return super.onTextContextMenuItem(id);
+6 −5
Original line number Diff line number Diff line
@@ -5254,14 +5254,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                        state.handleUpEvent(event);
                    }
                    if (event.isTracking() && !event.isCanceled()) {
                        if (isInSelectionMode) {
                        stopSelectionActionMode();
                        return true;
                    }
                }
            }
        }
        }
        return super.onKeyPreIme(keyCode, event);
    }

@@ -10158,7 +10156,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        return false;
    }

    private void stopSelectionActionMode() {
    /**
     * @hide
     */
    protected void stopSelectionActionMode() {
        if (mSelectionActionMode != null) {
            // This will hide the mSelectionModifierCursorController
            mSelectionActionMode.finish();