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

XMLWordPrintable

    • 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:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: