From c790778a4683b6eb2b51e11366f0d31dd946b9b8 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 9 Jul 2023 18:23:20 +0200 Subject: [PATCH] Window decorations: support moving/resizing `JInternalFrame` that is child of `JLayeredPane` and overlaps FlatLaf title bar (issue #658) --- .../main/java/com/formdev/flatlaf/ui/FlatTitlePane.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 93fe344c..a49a5835 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 @@ -57,6 +57,7 @@ import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; +import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JPanel; @@ -952,6 +953,13 @@ public class FlatTitlePane } } + // allow internal frames in layered pane to be moved/resized when placed over title bar + for( Component c : rootPane.getLayeredPane().getComponents() ) { + r = (c instanceof JInternalFrame) ? getNativeHitTestSpot( (JInternalFrame) c ) : null; + if( r != null ) + hitTestSpots.add( r ); + } + Rectangle minimizeButtonBounds = boundsInWindow( iconifyButton ); Rectangle maximizeButtonBounds = boundsInWindow( maximizeButton.isVisible() ? maximizeButton : restoreButton ); Rectangle closeButtonBounds = boundsInWindow( closeButton );