-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/engine
#42075Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: text inputEntering text in a text field or keyboard related problemsEntering text in a text field or keyboard related problemsfound in release: 2.10Found to occur in 2.10Found to occur in 2.10found in release: 2.13Found to occur in 2.13Found to occur in 2.13frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyAndroid applications specifically
Description
Steps to Reproduce
- Execute
flutter runon the code sample (see "Code sample" section below) - Write something in the text field
- Try to select some letters or a full word using Ctrl / Shift and arrow keys
Expected results: the selected text stays selected after releasing Ctrl / Shift and arrow keys
Actual results: the selected text gets unselected as soon as the keys are released
20220408_110456.mp4
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter TextField issue',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyScreen(title: 'Flutter TextField issue'),
);
}
}
class MyScreen extends StatefulWidget {
const MyScreen({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyScreen> createState() => _MyScreenState();
}
class _MyScreenState extends State<MyScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: const TextField(),
);
}
}
Logs
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_SHIFT_LEFT, scanCode=42, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349026946, downTime=1349026946, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349027429, downTime=1349027429, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349027502, downTime=1349027429, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349027822, downTime=1349027822, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349027877, downTime=1349027822, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028210, downTime=1349028210, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028298, downTime=1349028210, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028467, downTime=1349028467, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028537, downTime=1349028467, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028782, downTime=1349028782, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028837, downTime=1349028782, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349028957, downTime=1349028957, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029063, downTime=1349028957, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029184, downTime=1349029184, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029243, downTime=1349029184, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029378, downTime=1349029378, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029453, downTime=1349029378, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029703, downTime=1349029703, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349029768, downTime=1349029703, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_SHIFT_LEFT, scanCode=42, metaState=0, flags=0x8, repeatCount=0, eventTime=1349030210, downTime=1349029703, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
[log] TextInputClient.updateEditingState
[log] TextEditingValue(text: ┤Write something├, selection: TextSelection.collapsed(offset: 6, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=29, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349031590, downTime=1349031590, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_SHIFT_LEFT, scanCode=42, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON|META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349031644, downTime=1349031644, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_SHIFT_LEFT, scanCode=42, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON|META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x88, repeatCount=1, eventTime=1349032145, downTime=1349031644, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_RIGHT, scanCode=106, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON|META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349032173, downTime=1349032173, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_RIGHT, scanCode=106, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON|META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349032275, downTime=1349032173, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_CTRL_LEFT, scanCode=29, metaState=META_SHIFT_ON|META_SHIFT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=1349033270, downTime=1349032173, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I/ViewRootImpl(23532): ViewRoot's KeyEvent { action=ACTION_UP, keyCode=KEYCODE_SHIFT_LEFT, scanCode=42, metaState=0, flags=0x8, repeatCount=0, eventTime=1349033278, downTime=1349032173, deviceId=24, source=0x101 } to DecorView@faa983c[MainActivity]
I've added some logs to TextInputConnection to check and it returns a collapsed selection after releasing the keys:
[log] TextInputClient.updateEditingState
[log] TextEditingValue(text: ┤Write something├, selection: TextSelection.collapsed(offset: 15, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
[√] Flutter (Channel stable, 2.10.4, on Microsoft Windows [Versione 10.0.19042.1586], locale it-IT)
• Flutter version 2.10.4 at C:\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision c860cba910 (2 weeks ago), 2022-03-25 00:23:12 -0500
• Engine revision 57d3bac3dd
• Dart version 2.16.2
• DevTools version 2.9.2
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users\Alessandro\AppData\Local\Android\sdk
• Platform android-31, build-tools 30.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.10.3)
• Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
• Visual Studio Community 2019 version 16.10.31424.327
• Windows 10 SDK version 10.0.19041.0
[√] Android Studio (version 2021.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
[√] VS Code (version 1.62.2)
• VS Code at C:\Users\Alessandro\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.25.0
[√] Connected device (4 available)
• LG H930 (mobile) • LGH9308e11f266 • android-arm64 • Android 9 (API 28)
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [Versione 10.0.19042.1586]
• Chrome (web) • chrome • web-javascript • Google Chrome 100.0.4896.60
• Edge (web) • edge • web-javascript • Microsoft Edge 100.0.1185.29
[√] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: text inputEntering text in a text field or keyboard related problemsEntering text in a text field or keyboard related problemsfound in release: 2.10Found to occur in 2.10Found to occur in 2.10found in release: 2.13Found to occur in 2.13Found to occur in 2.13frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-androidAndroid applications specificallyAndroid applications specifically