jnschulze / flutter-webview-windows

A WebView2-powered Flutter WebView implementation for the Windows platform.
BSD 3-Clause "New" or "Revised" License
203 stars 120 forks source link

Mouse wheel scroll too fast #289

Open filipenanclarez opened 5 months ago

filipenanclarez commented 5 months ago

Video_1713224426

Version:

webview_windows: 0.4.0 (also occur in 0.1.8)

Code to reproduce:

import 'package:flutter/material.dart';
import 'package:memodu/modules/reader/webview_windows.dart';
import 'package:webview_windows/webview_windows.dart';

class TestWebView extends StatefulWidget {
  const TestWebView({Key? key}) : super(key: key);

  @override
  State<TestWebView> createState() => _TestWebViewState();
}

class _TestWebViewState extends State<TestWebView> {
  final controller = WebviewController();

  @override
  void setState(fn) {
    if (mounted) super.setState(fn);
  }

  @override
  void dispose() {
    controller.dispose();

    super.dispose();
  }

  @override
  void initState() {
    super.initState();

    WidgetsBinding.instance.addPostFrameCallback((_) async {
      if (mounted) {
        await initPlatformState();
      }
    });
  }

  Future<void> initPlatformState() async {
    await controller.initialize();

    await controller.loadUrl('https://flutter.dev');

    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Webview(
        controller,
        permissionRequested: _onPermissionRequested,
      ),
    );
  }

  Future<WebviewPermissionDecision> _onPermissionRequested(
      String url, WebviewPermissionKind kind, bool isUserInitiated) async {
    final decision = await showDialog<WebviewPermissionDecision>(
      context: navigatorKey.currentContext!,
      builder: (BuildContext context) => AlertDialog(
        title: const Text('WebView permission requested'),
        content: Text('WebView has requested permission \'$kind\''),
        actions: <Widget>[
          TextButton(
            onPressed: () =>
                Navigator.pop(context, WebviewPermissionDecision.deny),
            child: const Text('Deny'),
          ),
          TextButton(
            onPressed: () =>
                Navigator.pop(context, WebviewPermissionDecision.allow),
            child: const Text('Allow'),
          ),
        ],
      ),
    );

    return decision ?? WebviewPermissionDecision.none;
  }
}

Flutter doctor -v:

 History restored 

[√] Flutter (Channel stable, 3.19.2, on Microsoft Windows [versÆo 10.0.19045.4170], locale pt-BR)
    • Flutter version 3.19.2 on channel stable at C:\Users\dev\.puro\envs\v3192\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7482962148 (7 weeks ago), 2024-02-27 16:51:22 -0500
    • Engine revision 04817c99c9
    • Dart version 3.3.0
    • DevTools version 2.31.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\dev\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 33.0.1
    • ANDROID_HOME = C:\Users\dev\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\dev\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java       
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.4.1)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33110.190
    • Windows 10 SDK version 10.0.22000.0

[√] Android Studio (version 2021.3)
    • 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.13+0-b1751.21-8125866)

[√] VS Code (version 1.88.0)
    • VS Code at C:\Users\dev\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.86.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [versÆo 10.0.19045.4170]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 123.0.6312.107
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 123.0.2420.97

[√] Network resources
    • All expected network resources are available.

• No issues found!
filipenanclarez commented 5 months ago

@jnschulze

Change this from 6 to 1 solve the problem on my tests

Maybe in the newer version of flutter the delta already passed as full value, no need to convert ...

But I'm afraid it might stop something else.

Can you check please?

image