openConnectionIfNeeded method

void openConnectionIfNeeded()
inherited

Implementation

void openConnectionIfNeeded() {
  if (!shouldCreateInputConnection) {
    return;
  }

  if (!hasConnection) {
    _lastKnownRemoteTextEditingValue = textEditingValue;
    _textInputConnection = TextInput.attach(
      this,
      TextInputConfiguration(
        inputType: TextInputType.multiline,
        readOnly: widget.configurations.readOnly,
        inputAction: widget.configurations.textInputAction,
        enableSuggestions: !widget.configurations.readOnly,
        keyboardAppearance: widget.configurations.keyboardAppearance ??
            CupertinoTheme.maybeBrightnessOf(context) ??
            Theme.of(context).brightness,
        textCapitalization: widget.configurations.textCapitalization,
        allowedMimeTypes:
            widget.configurations.contentInsertionConfiguration == null
                ? const <String>[]
                : widget.configurations.contentInsertionConfiguration!
                    .allowedMimeTypes,
      ),
    );

    _updateSizeAndTransform();
    //update IME position for Windows
    _updateComposingRectIfNeeded();
    //update IME position for Macos
    _updateCaretRectIfNeeded();
    _textInputConnection!.setEditingState(_lastKnownRemoteTextEditingValue!);
  }
  _textInputConnection!.show();
}