Repository: flutter
Issue: Calling setState rebuilds the cursor when MouseRegion is nested in a scroll view with custom scrollBehavior
Labels: framework,f: gestures,a: mouse,has reproducible steps,P2,found in release: 2.5,found in release: 2.6,team-framework,triaged-framework

Listener
```dart
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      scrollBehavior: EXLScrollBehavior().copyWith(scrollbars: false),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        backgroundColor: Colors.black,
        body: SingleChildScrollView(
          child: Body(),
          // physics: NeverScrollableScrollPhysics(), /// Uncomment to check result without SingleChildScrollView
        ),
      ),
    );
  }
}

class Body extends StatefulWidget {
  @override
  _BodyState createState() => _BodyState();
}

class _BodyState extends State<Body> {
  Color _color = Colors.greenAccent;

  _updateColor(Color color) => setState(() => _color = color);

  @override
  Widget build(BuildContext context) {
    return MouseRegion(
      onEnter: (_) => _updateColor(Colors.greenAccent.withOpacity(0.9)),
      onExit: (_) => _updateColor(Colors.greenAccent),
      cursor: SystemMouseCursors.click,
      child: Listener(
        onPointerDown: (_) => _updateColor(Colors.greenAccent.withOpacity(0.8)),
        onPointerUp: (_) => _updateColor(Colors.greenAccent.withOpacity(0.9)),
        child: Container(
          height: 2000,
          width: 400,
          color: _color,
        ),
      ),
    );
  }
}

/// Default scroll configuration for the app with touch, mouse and stylus
/// support.
class EXLScrollBehavior extends ScrollBehavior {
  @override
  Set<PointerDeviceKind> get dragDevices => {
    PointerDeviceKind.touch,
    PointerDeviceKind.mouse,
    PointerDeviceKind.stylus,
  };
}
```

GestureDetector
```dart
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      scrollBehavior: EXLScrollBehavior().copyWith(scrollbars: false),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        backgroundColor: Colors.black,
        body: SingleChildScrollView(
          child: Body(),
          // physics: NeverScrollableScrollPhysics(), /// Uncomment to check result without SingleChildScrollView
        ),
      ),
    );
  }
}

class Body extends StatefulWidget {
  @override
  _BodyState createState() => _BodyState();
}

class _BodyState extends State<Body> {
  Color _color = Colors.greenAccent;

  _updateColor(Color color) => setState(() => _color = color);

  @override
  Widget build(BuildContext context) {
    return MouseRegion(
      onEnter: (_) => _updateColor(Colors.greenAccent.withOpacity(0.9)),
      onExit: (_) => _updateColor(Colors.greenAccent),
      cursor: SystemMouseCursors.click,
      child: GestureDetector(
        onTapDown: (_) => _updateColor(Colors.greenAccent.withOpacity(0.8)),
        onTapUp: (_) => _updateColor(Colors.greenAccent.withOpacity(0.9)),
        child: Container(
          height: 2000,
          width: 400,
          color: _color,
        ),
      ),
    );
  }
}

/// Default scroll configuration for the app with touch, mouse and stylus
/// support.
class EXLScrollBehavior extends ScrollBehavior {
  @override
  Set<PointerDeviceKind> get dragDevices => {
    PointerDeviceKind.touch,
    PointerDeviceKind.mouse,
    PointerDeviceKind.stylus,
  };
}
```

The same wrong behavior as here https://github.com/flutter/flutter/issues/82103 when i add scrollBehavior to MaterialApp widget.

Flutter version: 2.5.3 from stable channel.
Platform where i tested this: Web