Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8229751

[macOS] trackpad scrolling too fast

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3 P3
    • tbd
    • jfx12
    • javafx

      ADDITIONAL SYSTEM INFORMATION :
      MacBook Pro with internal trackpad and external Magic Trackpad

      A DESCRIPTION OF THE PROBLEM :
      When you try to scroll something on a Mac with a trackpad (external or internal)
      then this is so fast that it is practically unusable.

      I am talking here about the scroll gesture where you move two fingers up and down
      in parallel! At first I thought I was doing something wrong in interpreting the
      event data but I now stumbled over a case where this happens without my
      intervention.

      This can be shown easily with a WebView and Google-Maps. I have attached a little
      test program which opens Google-Maps in a JavaFX WebView. Run this program in
      parallel with any Web-Browser (Firefox, Chrome, ...) also showing Google-Maps.
      Then try to zoom in and out of the map with the two-finger scroll gesture
      (not the pinch-gesture!) on both systems and you will see the difference.
      The zoom in the WebView is much too fast to be usable in contrast to the zoom
      in the browser which is ok.

      This issue is probably related to https://bugs.openjdk.java.net/browse/JDK-8218424

      I report this issue for the Mac only because I don't have any other system on which
      I could verify this. So I don' know whether this behaviour is mac-specific or not.

      I have tested this with:

      java.vm.name: OpenJDK 64-Bit Server VM
      java.runtime.version: 12.0.2+10
      javafx.version: 13-ea

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run the attached test program in parallel to web-browser

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Same scroll speed on both systems.
      ACTUAL -
      Extremely different scroll speeds.

      ---------- BEGIN SOURCE ----------
      package webviewzoomdemo;
       
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.scene.layout.BorderPane;
      import javafx.scene.web.WebView;
      import javafx.stage.Stage;
       
      // Needs --add-modules=javafx.controls,javafx.web
      public class WebViewZoomDemo extends Application {
       
          String url = "https://www.google.de/maps";
          
          @Override
      public void init() {
              System.out.format("java.vm.name: %s\n", System.getProperty("java.vm.name", "(undefined)"));
              System.out.format("java.runtime.version: %s\n", System.getProperty("java.runtime.version", "(undefined)"));
              System.out.format("javafx.version: %s\n", System.getProperty("javafx.version", "(undefined)"));
          }
          
          @Override
          public void start(final Stage stage) {
              WebView browser = new WebView();
              browser.getEngine().load(url);
        
              BorderPane root = new BorderPane();
              root.setCenter(browser);
       
              Scene scene = new Scene(root);
       
              stage.setScene(scene);
              stage.setWidth(800);
              stage.setHeight(600);
       
              stage.show();
              
          }
       
          public static void main(String[] args) {
              launch(args);
          }
       
      }

      ---------- END SOURCE ----------

      FREQUENCY : always


            jvos Johan Vos
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: