Mouse additional buttons and horizontal scrolling are broken on XWayland GNOME >= 47 after JDK-8351907

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P3
    • 26
    • Affects Version/s: 17, 21, 25
    • Component/s: client-libs
    • Environment:

      any GNOME >= 47 + XWayland

    • b27
    • generic
    • linux

      The patch for JDK-8351907 disables all mouse extra buttons for any application run under XWayland GNOME of version >= 47. Also it makes impossible to perform horizontal scrolling via a mouse secondary wheel as well as via touchpad gestures.
      If you analyze the changes of src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java introduced in that patch, you realize that after some simplification the code performs the following:

      if ( is-running-under-XWayland && is-running-under-gnome && gnome-version >= 47 ) {
          numberOfButtons = 3;
          // not asking the platform about the real number of buttons being supported
      }

      Trying to click any mouse additional button raises an exception like the following:

      WARN - sun.awt.X11.XToolkit - Exception on Toolkit thread
      java.lang.IllegalArgumentException: Nonexistent button 6
              at java.desktop/java.awt.event.MouseEvent.<init>(MouseEvent.java:774)
              at java.desktop/sun.awt.X11.XWindow.handleButtonPressRelease(XWindow.java:765)
              at java.desktop/sun.awt.X11.XContentWindow.handleButtonPressRelease(XContentWindow.java:45)
              at java.desktop/sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1206)
              at java.desktop/sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1178)
              at java.desktop/sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:939)
              at java.desktop/sun.awt.X11.XToolkit.run(XToolkit.java:1086)
              at java.desktop/sun.awt.X11.XToolkit.run(XToolkit.java:968)
              at java.base/java.lang.Thread.run(Thread.java:1583)


      Workarounds
      - Setting the following VM option: -Dawt.robot.screenshotMethod=x11

            Assignee:
            Alexander Zvegintsev
            Reporter:
            Vitaly Provodin
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: