Skip to content

[Linux] Pressing Alt-Tab without moving the mouse after startup breaks mouse movement afterwards #90838

@dkwingsmt

Description

@dkwingsmt

Reproduction code:

import 'package:flutter/material.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextField(),
      ),
    );
  }
}

Reproduction step:

  1. flutter run -d linux
  2. Alt-Tab to the app, if needed, without moving the mouse at all
  3. Alt-Tab to other apps

Expected result: The app is still usable.

Actual result: The app keeps informing assertion for the mouse system and does not respond to mouse interactions. The first of the errors is:

[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 317 pos 18: 'event is! PointerRemovedEvent': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      MouseTracker.updateWithEvent.<anonymous closure>.<anonymous closure> (package:flutter/src/rendering/mouse_tracker.dart:317:18)
#3      MouseTracker._deviceUpdatePhase (package:flutter/src/rendering/mouse_tracker.dart:206:9)
#4      MouseTracker.updateWithEvent.<anonymous closure> (package:flutter/src/rendering/mouse_tracker.dart:312:7)
#5      MouseTracker._monitorMouseConnection (package:flutter/src/rendering/mouse_tracker.dart:190:9)
#6      MouseTracker.updateWithEvent (package:flutter/src/rendering/mouse_tracker.dart:311:5)
#7      RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:270:20)
#8      GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374:7)
#9      GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
#10     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
#11     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
#12     _rootRunUnary (dart:async/zone.dart:1444:13)
#13     _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#14     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#15     _invoke1 (dart:ui/hooks.dart:185:10)
#16     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#17     _dispatchPointerDataPacket (dart:ui/hooks.dart:98:31)

Version:

 flutter doctor -v                                     ✔  10102  16:00:08
[✓] Flutter (Channel master, 2.6.0-12.0.pre.64, on Debian GNU/Linux rodete 5.10.46-4rodete4-amd64, locale
    en_US.UTF-8)
    • Flutter version 2.6.0-12.0.pre.64 at /usr/local/google/home/tongmu/dev/flutter
    • Upstream repository [email protected]:flutter/flutter.git
    • Framework revision 975da38dd3 (4 days ago), 2021-09-23 14:13:04 -0400
    • Engine revision a3911f24a5
    • Dart version 2.15.0 (build 2.15.0-140.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at /usr/local/google/home/tongmu/Android/Sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Debian clang version 11.0.1-2
    • cmake version 3.18.4
    • ninja version 1.8.2
    • pkg-config version 0.29.2

[✓] Android Studio (version 3.5)
    • Android Studio at /usr/local/google/home/tongmu/src/android-studio
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.60.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.26.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Debian GNU/Linux rodete 5.10.46-4rodete4-amd64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 94.0.4606.61

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: mouseIssues related to using a mouse or mouse supporta: text inputEntering text in a text field or keyboard related problemsfound in release: 2.5Found to occur in 2.5found in release: 2.6Found to occur in 2.6frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-linuxBuilding on or for Linux specifically

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions