This is an automated email from the ASF dual-hosted git repository.

mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new cc2687534c FlatLaf: Enable Window decoration option for Linux
     new 0a618c9880 Merge pull request #6391 from 
demitriusbelai/flatlaf-window-decoration
cc2687534c is described below

commit cc2687534c44a8945ef405ec848ad84d7a4475e9
Author: Demitrius Belai <[email protected]>
AuthorDate: Mon Aug 28 17:33:33 2023 -0300

    FlatLaf: Enable Window decoration option for Linux
---
 .../src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java     |  7 +++++++
 .../org/netbeans/swing/laf/flatlaf/FlatLafOptionsPanel.java   | 11 +++++++----
 .../src/org/netbeans/swing/laf/flatlaf/FlatLafPrefs.java      |  7 +++++--
 .../o.n.swing.plaf/src/org/netbeans/swing/plaf/Startup.java   |  3 +++
 4 files changed, 22 insertions(+), 6 deletions(-)

diff --git 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
index 5cf17babcb..9411ce9a89 100644
--- 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
+++ 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java
@@ -19,6 +19,7 @@
 
 package org.netbeans.swing.laf.flatlaf;
 
+import com.formdev.flatlaf.util.SystemInfo;
 import com.formdev.flatlaf.util.UIScale;
 import java.awt.Color;
 import java.awt.Font;
@@ -26,8 +27,10 @@ import java.awt.Insets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.Callable;
 import javax.swing.BorderFactory;
 import javax.swing.InputMap;
+import javax.swing.JFrame;
 import javax.swing.KeyStroke;
 import javax.swing.UIDefaults;
 import javax.swing.UIDefaults.LazyValue;
@@ -151,6 +154,10 @@ public class FlatLFCustoms extends LFCustoms {
                 }
             }
         }
+        if (SystemInfo.isLinux) {
+            result.add("windowDefaultLookAndFeelDecorated");
+            result.add(FlatLafPrefs.isUseWindowDecorations());
+        }
         return result.toArray();
     }
 
diff --git 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafOptionsPanel.java
 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafOptionsPanel.java
index f95768a9d6..553a910c89 100644
--- 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafOptionsPanel.java
+++ 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafOptionsPanel.java
@@ -19,6 +19,7 @@
 package org.netbeans.swing.laf.flatlaf;
 
 import com.formdev.flatlaf.FlatLaf;
+import com.formdev.flatlaf.FlatLightLaf;
 import com.formdev.flatlaf.util.SystemInfo;
 import java.awt.Color;
 import java.io.BufferedWriter;
@@ -52,7 +53,8 @@ import org.openide.util.RequestProcessor;
 public class FlatLafOptionsPanel extends javax.swing.JPanel {
 
     private static final Color DEFAULT = new Color(0, true);
-    private static final Color currentAccentColor = 
FlatLafPrefs.getAccentColor();
+    private static final Color currentAccentColor = 
getPrefsAccentColorOrDefault();
+    private static final boolean currentUseWindowDecorations = 
FlatLafPrefs.isUseWindowDecorations();
 
     private static final RequestProcessor RP = new 
RequestProcessor(FlatLafOptionsPanel.class);
 
@@ -108,7 +110,7 @@ public class FlatLafOptionsPanel extends javax.swing.JPanel 
{
     }
 
     private void updateEnabled() {
-        boolean supportsWindowDecorations = 
FlatLaf.supportsNativeWindowDecorations();
+        boolean supportsWindowDecorations = 
FlatLaf.supportsNativeWindowDecorations() || new 
FlatLightLaf().getSupportsWindowDecorations();
         useWindowDecorationsCheckBox.setEnabled(supportsWindowDecorations);
         unifiedTitleBarCheckBox.setEnabled(supportsWindowDecorations && 
useWindowDecorationsCheckBox.isSelected());
         menuBarEmbeddedCheckBox.setEnabled(supportsWindowDecorations && 
useWindowDecorationsCheckBox.isSelected());
@@ -341,7 +343,8 @@ public class FlatLafOptionsPanel extends javax.swing.JPanel 
{
         
FlatLafPrefs.setUnderlineMenuSelection(underlineMenuSelectionCheckBox.isSelected());
         
FlatLafPrefs.setAlwaysShowMnemonics(alwaysShowMnemonicsCheckBox.isSelected());
 
-        if (!Objects.equals(accentColor, currentAccentColor)) {
+        if (!Objects.equals(accentColor, currentAccentColor)
+                || SystemInfo.isLinux && 
useWindowDecorationsCheckBox.isSelected() != currentUseWindowDecorations) {
             askForRestart();
         }
         return false;
@@ -368,7 +371,7 @@ public class FlatLafOptionsPanel extends javax.swing.JPanel 
{
                 NotificationDisplayer.Priority.NORMAL, 
NotificationDisplayer.Category.INFO);
     }
 
-    private Color getPrefsAccentColorOrDefault() {
+    private static Color getPrefsAccentColorOrDefault() {
         Color accentColor = FlatLafPrefs.getAccentColor();
         return accentColor != null ? accentColor : DEFAULT;
     }
diff --git 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafPrefs.java
 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafPrefs.java
index 19f894bba1..9a72202326 100644
--- 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafPrefs.java
+++ 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLafPrefs.java
@@ -18,6 +18,7 @@
  */
 package org.netbeans.swing.laf.flatlaf;
 
+import com.formdev.flatlaf.util.SystemInfo;
 import java.awt.Color;
 import java.util.prefs.Preferences;
 import org.openide.util.NbPreferences;
@@ -37,6 +38,8 @@ class FlatLafPrefs {
 
     private static final Preferences prefs = 
NbPreferences.forModule(FlatLafPrefs.class);
 
+    private static final boolean DEF_USE_WINDOW_DECORATIONS = 
SystemInfo.isWindows_10_orLater;
+
     static Color getAccentColor() {
         return parseColor(prefs.get(ACCENT_COLOR, null));
     }
@@ -60,11 +63,11 @@ class FlatLafPrefs {
     }
 
     static boolean isUseWindowDecorations() {
-        return prefs.getBoolean(USE_WINDOW_DECORATIONS, true);
+        return prefs.getBoolean(USE_WINDOW_DECORATIONS, 
DEF_USE_WINDOW_DECORATIONS);
     }
 
     static void setUseWindowDecorations(boolean value) {
-        putBoolean(USE_WINDOW_DECORATIONS, value, true);
+        putBoolean(USE_WINDOW_DECORATIONS, value, DEF_USE_WINDOW_DECORATIONS);
     }
 
     static boolean isUnifiedTitleBar() {
diff --git a/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/Startup.java 
b/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/Startup.java
index 5119482026..8ab286991a 100644
--- a/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/Startup.java
+++ b/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/Startup.java
@@ -334,6 +334,9 @@ public final class Startup {
             defaults.putDefaults 
(customs.getLookAndFeelCustomizationKeysAndValues());
         }
 
+        if (defaults.getBoolean("windowDefaultLookAndFeelDecorated")) {
+            JFrame.setDefaultLookAndFeelDecorated(true);
+        }
     }
 
     private void runPostInstall() {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to