mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 01:19:28 +01:00
8372756: Mouse additional buttons and horizontal scrolling are broken on XWayland GNOME >= 47 after JDK-8351907
Reviewed-by: prr
(cherry picked from commit db2cd1a4e0)
This commit is contained in:
committed by
Nikita Provotorov
parent
3a4b637dae
commit
db26498310
@@ -150,8 +150,6 @@ import sun.awt.X11GraphicsDevice;
|
||||
import sun.awt.X11GraphicsEnvironment;
|
||||
import sun.awt.XSettings;
|
||||
import sun.awt.datatransfer.DataTransferer;
|
||||
import sun.awt.screencast.ScreencastHelper;
|
||||
import sun.awt.screencast.XdgDesktopPortal;
|
||||
import sun.awt.util.PerformanceLogger;
|
||||
import sun.awt.util.ThreadGroupUtils;
|
||||
import sun.font.FontConfigManager;
|
||||
@@ -1992,27 +1990,17 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
|
||||
awtLock();
|
||||
try {
|
||||
if (numberOfButtons == 0) {
|
||||
// The commented-out code is introduced in 8351907 and causes inability to use
|
||||
// any mouse extra buttons under XWayland GNOME of version >= 47,
|
||||
// thus causing JBR-9713, JBR-9714, JBR-9715.
|
||||
// Please don't enable it back until a proper fix appears in OpenJDK.
|
||||
//
|
||||
//if (XdgDesktopPortal.isRemoteDesktop()
|
||||
// && ScreencastHelper.isAvailable()) {
|
||||
// numberOfButtons = 3;
|
||||
//} else {
|
||||
numberOfButtons = getNumberOfButtonsImpl();
|
||||
numberOfButtons = (numberOfButtons > MAX_BUTTONS_SUPPORTED) ? MAX_BUTTONS_SUPPORTED : numberOfButtons;
|
||||
//4th and 5th buttons are for wheel and shouldn't be reported as buttons.
|
||||
//If we have more than 3 physical buttons and a wheel, we report N-2 buttons.
|
||||
//If we have 3 physical buttons and a wheel, we report 3 buttons.
|
||||
//If we have 1,2,3 physical buttons, we report it as is i.e. 1,2 or 3 respectively.
|
||||
if (numberOfButtons >= 5) {
|
||||
numberOfButtons -= 2;
|
||||
} else if (numberOfButtons == 4 || numberOfButtons == 5) {
|
||||
numberOfButtons = 3;
|
||||
}
|
||||
//}
|
||||
numberOfButtons = getNumberOfButtonsImpl();
|
||||
numberOfButtons = (numberOfButtons > MAX_BUTTONS_SUPPORTED) ? MAX_BUTTONS_SUPPORTED : numberOfButtons;
|
||||
//4th and 5th buttons are for wheel and shouldn't be reported as buttons.
|
||||
//If we have more than 3 physical buttons and a wheel, we report N-2 buttons.
|
||||
//If we have 3 physical buttons and a wheel, we report 3 buttons.
|
||||
//If we have 1,2,3 physical buttons, we report it as is i.e. 1,2 or 3 respectively.
|
||||
if (numberOfButtons >= 5) {
|
||||
numberOfButtons -= 2;
|
||||
} else if (numberOfButtons == 4 || numberOfButtons == 5) {
|
||||
numberOfButtons = 3;
|
||||
}
|
||||
}
|
||||
//Assume don't have to re-query the number again and again.
|
||||
return numberOfButtons;
|
||||
|
||||
Reference in New Issue
Block a user