Skip to content

Touchpad scroll on chromebooks doesn't work on stable (1.7.8+hotfix.2) #36118

@wreppun

Description

@wreppun

Summary

Two finger trackpad scroll used to work, and now it doesn't. I did a (sloooow) binary search through the commits between stable releases. The commit which broke trackpad scrolling is 7f969d0. Unfortunately, that was a pretty complex PR (well, at least for my flutter skills), and I wasn't able to figure out what exactly went wrong.

Steps to Reproduce:

I used a slightly modified version of the counter example to make a scrollable list.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: ListView(
          children: [
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
            SizedBox(height: 16),
            ...List.generate(_counter, (index) {
              return Padding(
                padding: EdgeInsets.symmetric(vertical: 8),
                child: Text('#$index'),
              );
            }),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}
  1. Run the app on a chromebook. I tested on an ASUS C202, a Lenovo e300, and one more (I don't have the model at hand, I'll add it when I can look) an HP Chromebook x360
  2. Click the + button until you have a list that goes past the bottom of the window
  3. Try to scroll with two fingers on the trackpad

Expected Result

The app scrolls

Actual Result

The app doesn't scroll

Logs

I didn't see anything in the verbose logs

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.6.1-pre.56, on Mac OS X 10.14.5 18F132, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[!] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    ✗ Verify that all connected devices have been paired with this computer in Xcode.
      If all devices have been paired, libimobiledevice and ideviceinstaller may require updating.
      To update with Brew, run:
        brew update
        brew uninstall --ignore-dependencies libimobiledevice
        brew uninstall --ignore-dependencies usbmuxd
        brew install --HEAD usbmuxd
        brew unlink usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.36.1)
[!] Connected device

Metadata

Metadata

Assignees

Labels

a: desktopRunning on desktopc: regressionIt was better in the past than it is nowf: gesturesflutter/packages/flutter/gestures repository.frameworkflutter/packages/flutter repository. See also f: labels.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions