-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P3
-
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
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
- caused by
-
JDK-8351907 [XWayland] [OL10] Robot.mousePress() is delivered to wrong place
-
- Closed
-
- relates to
-
JDK-8357142 [XWayland] add extra mouse buttons support for remote desktop portal
-
- Open
-
- links to
-
Commit(master)
openjdk/jdk/db2cd1a4
-
Review(master)
openjdk/jdk/28621