Set the initial selection range when creating an InputConnection (#3127)

Fixes https://github.com/flutter/flutter/issues/6152
This commit is contained in:
Jason Simmons 2016-10-13 10:42:57 -07:00 committed by GitHub
parent cf774d580c
commit bce223c0a6

View File

@ -70,11 +70,16 @@ public class KeyboardViewState {
outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE;
InputConnectionAdaptor connection = new InputConnectionAdaptor(mView, mClient);
if (mIncomingState != null) {
outAttrs.initialSelStart = mIncomingState.selectionBase;
outAttrs.initialSelEnd = mIncomingState.selectionExtent;
connection.getEditable().append(mIncomingState.text);
connection.setSelection(mIncomingState.selectionBase,
mIncomingState.selectionExtent);
connection.setComposingRegion(mIncomingState.composingBase,
mIncomingState.composingExtent);
} else {
outAttrs.initialSelStart = 0;
outAttrs.initialSelEnd = 0;
}
return connection;
}