From c63f4e9662699fe5b8fff9d1b23c294ea7c4efab Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 18 Mar 2022 00:05:15 +0100 Subject: [PATCH] Window decorations on Linux: limit window resizing/moving to left mouse button (issue #482) --- .../main/java/com/formdev/flatlaf/ui/FlatTitlePane.java | 6 ++++++ .../java/com/formdev/flatlaf/ui/FlatWindowResizer.java | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java index e26a3e78..1836da77 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java @@ -1016,6 +1016,9 @@ debug*/ if( window == null ) return; // should newer occur + if( !SwingUtilities.isLeftMouseButton( e ) ) + return; + dragOffset = SwingUtilities.convertPoint( FlatTitlePane.this, e.getPoint(), window ); } @@ -1030,6 +1033,9 @@ debug*/ if( window == null ) return; // should newer occur + if( !SwingUtilities.isLeftMouseButton( e ) ) + return; + if( hasNativeCustomDecoration() ) return; // do nothing if having native window border diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java index 185ecddc..849c0a35 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowResizer.java @@ -43,6 +43,7 @@ import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.JRootPane; +import javax.swing.SwingUtilities; import javax.swing.UIManager; import com.formdev.flatlaf.util.SystemInfo; import com.formdev.flatlaf.util.UIScale; @@ -521,7 +522,7 @@ debug*/ @Override public void mousePressed( MouseEvent e ) { - if( !isWindowResizable() ) + if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() ) return; int xOnScreen = e.getXOnScreen(); @@ -550,7 +551,7 @@ debug*/ @Override public void mouseReleased( MouseEvent e ) { - if( !isWindowResizable() ) + if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() ) return; dragLeftOffset = dragRightOffset = dragTopOffset = dragBottomOffset = 0; @@ -576,7 +577,7 @@ debug*/ @Override public void mouseDragged( MouseEvent e ) { - if( !isWindowResizable() ) + if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() ) return; int xOnScreen = e.getXOnScreen();