Skip to content

TextField temporarily loses focus on mouse press outside text #85732

@jpnurmi

Description

@jpnurmi

Steps to Reproduce (desktop & web)

  1. Run flutter create bug.

  2. Update the files as follows: ...

    main.dart:

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: const Text('TextField Focus')),
          body: Center(
            child: TextField(
              autofocus: true,
              controller: TextEditingController.fromValue(
                const TextEditingValue(
                  text: 'TextField',
                  selection: TextSelection(baseOffset: 0, extentOffset: 9),
                ),
              ),
            ),
          ),
        ),
      ));
    }
  3. Press (left mouse button) somewhere near the text field's bottom line (outside the text but within the text field's bounds)

Expected results:

The text field retains focus during press as it did before #82575.

Actual results:

The text field loses focus temporarily until the mouse button is released.

Logs
$ flutter run -v
[  +40 ms] executing: uname -m
[  +23 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +4 ms] executing: [/home/jpnurmi/Flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] executing: [/home/jpnurmi/Flutter/] git tag --points-at 944a16a73c390e13ac0930c29db2a702beccdacc
[  +10 ms] Exit code 0 from: git tag --points-at 944a16a73c390e13ac0930c29db2a702beccdacc
[   +1 ms] executing: [/home/jpnurmi/Flutter/] git describe --match *.*.* --long --tags 944a16a73c390e13ac0930c29db2a702beccdacc
[  +27 ms] Exit code 0 from: git describe --match *.*.* --long --tags 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] 2.3.0-16.0.pre-621-g944a16a73c
[   +4 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] upstream/master
[        ] executing: [/home/jpnurmi/Flutter/] git ls-remote --get-url upstream
[   +4 ms] Exit code 0 from: git ls-remote --get-url upstream
[        ] https://github.com/flutter/flutter.git
[  +57 ms] Unable to locate an Android SDK.
[   +3 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref HEAD
[   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] master
[  +39 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +41 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +50 ms] Skipping pub get: version match.
[  +66 ms] Generating /home/jpnurmi/Temp/flutter_text_field_focus/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +52 ms] Initializing file store
[   +6 ms] Skipping target: gen_localizations
[   +4 ms] Skipping target: gen_dart_plugin_registrant
[        ] Skipping target: _composite
[   +1 ms] complete
[   +4 ms] Launching lib/main.dart on Linux in debug mode...
[   +4 ms] /home/jpnurmi/Flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/jpnurmi/Flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/home/jpnurmi/Flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true
--output-dill /tmp/flutter_tools.NKNSAF/flutter_tool.VLOFZF/app.dill --packages /home/jpnurmi/Temp/flutter_text_field_focus/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false
--enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill --flutter-widget-cache
--enable-experiment=alternative-invalidation-strategy
[  +15 ms] Building Linux application...
[  +11 ms] <- compile package:flutter_text_field_focus/main.dart
[   +2 ms] executing: [build/linux/x64/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64 /home/jpnurmi/Temp/flutter_text_field_focus/linux
[  +31 ms] -- Configuring done
[        ] -- Generating done
[   +9 ms] -- Build files have been written to: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug
[   +5 ms] executing: ninja -C build/linux/x64/debug install
[   +8 ms] ninja: Entering directory `build/linux/x64/debug'
[+1565 ms] [1/5] Generating /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/libflutter_linux_gtk.so,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h, /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_engine.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h, /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_method_call.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h, /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_method_response.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h, /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_value.h,
/home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/fl_view.h, /home/jpnurmi/Temp/flutter_text_field_focus/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
[   +2 ms] [  +42 ms] executing: uname -m
[        ] [  +23 ms] Exit code 0 from: uname -m
[        ] [        ] x86_64
[        ] [   +3 ms] executing: [/home/jpnurmi/Flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [   +4 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] [        ] executing: [/home/jpnurmi/Flutter/] git tag --points-at 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] [  +10 ms] Exit code 0 from: git tag --points-at 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] [   +1 ms] executing: [/home/jpnurmi/Flutter/] git describe --match *.*.* --long --tags 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] [  +26 ms] Exit code 0 from: git describe --match *.*.* --long --tags 944a16a73c390e13ac0930c29db2a702beccdacc
[        ] [        ] 2.3.0-16.0.pre-621-g944a16a73c
[        ] [   +4 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] upstream/master
[        ] [        ] executing: [/home/jpnurmi/Flutter/] git ls-remote --get-url upstream
[        ] [   +5 ms] Exit code 0 from: git ls-remote --get-url upstream
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +34 ms] Unable to locate an Android SDK.
[        ] [   +5 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref HEAD
[        ] [   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] master
[        ] [  +39 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [  +54 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [  +17 ms] Initializing file store
[        ] [   +5 ms] Done initializing file store
[        ] [  +22 ms] Skipping target: gen_localizations
[        ] [   +7 ms] Skipping target: gen_dart_plugin_registrant
[        ] [ +368 ms] Skipping target: unpack_linux
[        ] [ +298 ms] Skipping target: kernel_snapshot
[        ] [ +202 ms] Skipping target: debug_bundle_linux-x64_assets
[        ] [        ] Persisting file store
[        ] [   +4 ms] Done persisting file store
[        ] [   +2 ms] build succeeded.
[        ] [   +5 ms] "flutter assemble" took 1,010ms.
[        ] [   +2 ms] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [   +2 ms] exiting with code 0
[ +341 ms] [2/5] Building CXX object CMakeFiles/flutter_text_field_focus.dir/my_application.cc.o
[  +13 ms] [3/5] Building CXX object CMakeFiles/flutter_text_field_focus.dir/flutter/generated_plugin_registrant.cc.o
[ +117 ms] [4/5] Linking CXX executable intermediates_do_not_run/flutter_text_field_focus
[        ] [4/5] Install the project...
[   +6 ms] -- Install configuration: "Debug"
[   +8 ms] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/flutter_text_field_focus
[        ] -- Set runtime path of "/home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/flutter_text_field_focus" to "$ORIGIN/lib"
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/icudtl.dat
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so
[  +33 ms] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/packages
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
[  +31 ms] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/version.json
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES.Z
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/fonts
[        ] -- Installing: /home/jpnurmi/Temp/flutter_text_field_focus/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[  +12 ms] Building Linux application... (completed in 2,197ms)
[ +185 ms] Observatory URL on device: http://127.0.0.1:39593/QhDrW7DRMzg=/
[   +5 ms] Caching compiled dill
[  +40 ms] Connecting to service protocol: http://127.0.0.1:39593/QhDrW7DRMzg=/
[ +126 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at http://127.0.0.1:39593/QhDrW7DRMzg=/.
[  +74 ms] DDS is listening at http://127.0.0.1:39511/j3ZnnDPw00s=/.
[  +35 ms] Successfully connected to service protocol: http://127.0.0.1:39593/QhDrW7DRMzg=/
[  +26 ms] DevFS: Creating new filesystem on the device (null)
[  +17 ms] DevFS: Created new filesystem on the device (file:///tmp/flutter_text_field_focusNZMQVM/flutter_text_field_focus/)
[   +2 ms] Updating assets
[  +49 ms] Syncing files to device Linux...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +1 ms] <- recompile package:flutter_text_field_focus/main.dart 972faa46-b775-47f3-ba45-9f1e1a71d58c
[        ] <- 972faa46-b775-47f3-ba45-9f1e1a71d58c
[  +55 ms] Updating files.
[        ] DevFS: Sync finished
[        ] Syncing files to device Linux... (completed in 58ms)
[        ] Synced 0.0MB.
[        ] <- accept
[   +2 ms] Connected to _flutterView/0x143f560.
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload. 🔥🔥🔥
[        ] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] 💪 Running with sound null safety 💪
[        ] An Observatory debugger and profiler on Linux is available at: http://127.0.0.1:39511/j3ZnnDPw00s=/
[ +229 ms] DevTools activation throttled until 2021-07-02 10:55:20.324986.
[ +324 ms] The Flutter DevTools debugger and profiler on Linux is available at: http://127.0.0.1:9101?uri=http://127.0.0.1:39511/j3ZnnDPw00s=/
$ flutter analyze
Analyzing flutter_text_field_focus...                                   
No issues found! (ran in 0.7s)
$ flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-17.0.pre.621, on Ubuntu 21.04 5.11.0-22-generic, locale en_DK.UTF-8)
    • Flutter version 2.3.0-17.0.pre.621 at /home/jpnurmi/Flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 944a16a73c (33 minutes ago), 2021-07-02 05:23:29 +0800
    • Engine revision f106378dd6
    • Dart version 2.14.0 (build 2.14.0-263.0.dev)

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.


[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 12.0.0-1ubuntu1
    • cmake version 3.18.4
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 4.2)
    • Android Studio at /snap/android-studio/103/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.8+0-b944-P17168821)

[✓] VS Code
    • VS Code at /snap/code/current
    • Flutter extension version 3.24.0

[✓] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Ubuntu 21.04 5.11.0-22-generic

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: text inputEntering text in a text field or keyboard related problemsc: regressionIt was better in the past than it is nowf: focusFocus traversal, gaining or losing focusf: material designflutter/packages/flutter/material repository.found in release: 2.4Found to occur in 2.4frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions