From 067501cbe7b933520777c3e903ff91b4846a7cd4 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 23 Apr 2021 21:12:40 +0200 Subject: [PATCH] Native window decorations: avoid double window title bar if enabling native window border failed (issue #315) --- .../com/formdev/flatlaf/ui/FlatNativeWindowBorder.java | 8 ++++++++ .../formdev/flatlaf/ui/FlatWindowsNativeWindowBorder.java | 2 ++ 2 files changed, 10 insertions(+) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeWindowBorder.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeWindowBorder.java index 4d4afab1..86bc8dc4 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeWindowBorder.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeWindowBorder.java @@ -125,6 +125,10 @@ public class FlatNativeWindowBorder // enable native window border for window setHasCustomDecoration( frame, true ); + // avoid double window title bar if enabling native window border failed + if( !hasCustomDecoration( frame ) ) + return; + // enable Swing window decoration rootPane.setWindowDecorationStyle( JRootPane.FRAME ); @@ -143,6 +147,10 @@ public class FlatNativeWindowBorder // enable native window border for window setHasCustomDecoration( dialog, true ); + // avoid double window title bar if enabling native window border failed + if( !hasCustomDecoration( dialog ) ) + return; + // enable Swing window decoration rootPane.setWindowDecorationStyle( JRootPane.PLAIN_DIALOG ); } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowsNativeWindowBorder.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowsNativeWindowBorder.java index 4b909a05..87977450 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowsNativeWindowBorder.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatWindowsNativeWindowBorder.java @@ -308,6 +308,8 @@ class FlatWindowsNativeWindowBorder this.window = window; hwnd = installImpl( window ); + if( hwnd == 0 ) + return; // remove the OS window title bar if( window instanceof JFrame && ((JFrame)window).getExtendedState() != 0 ) {