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

hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 273e7c80d0 Fix auto darkmode on macOS, fixes #6535 (#6536)
273e7c80d0 is described below

commit 273e7c80d080e030d43ed53a8f5d26d92efb9819
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Tue Feb 10 17:08:34 2026 +0100

    Fix auto darkmode on macOS, fixes #6535 (#6536)
---
 ui/src/main/java/org/apache/hop/ui/core/PropsUi.java        |  4 ++--
 .../perspective/configuration/tabs/ConfigGuiOptionsTab.java | 13 +++++++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java 
b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index 1288fd77b2..60f725557e 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -144,11 +144,11 @@ public class PropsUi extends Props {
     if (!EnvironmentUtils.getInstance().isWeb() && !OsHelper.isWindows()) {
       if (Display.isSystemDarkTheme()) {
         if (!isDarkMode()) {
-          setDarkMode(false);
+          setDarkMode(true);
         }
       } else {
         if (isDarkMode()) {
-          setDarkMode(true);
+          setDarkMode(false);
         }
       }
     }
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
index 70b587183e..aff9210472 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
@@ -164,7 +164,13 @@ public class ConfigGuiOptionsTab {
       wEnableInfiniteMove.setSelection(props.isInfiniteCanvasMoveEnabled());
       wHideMenuBar.setSelection(props.isHidingMenuBar());
       wShowTableViewToolbar.setSelection(props.isShowTableViewToolbar());
-      wDarkMode.setSelection(props.isDarkMode());
+      // On macOS (and other non-Windows), dark mode follows system; sync from 
system so UI and
+      // props match
+      boolean darkMode = Const.isWindows() ? props.isDarkMode() : 
Display.isSystemDarkTheme();
+      if (!Const.isWindows()) {
+        props.setDarkMode(darkMode);
+      }
+      wDarkMode.setSelection(darkMode);
 
       // Reload global zoom
       String globalZoomFactor = Integer.toString((int) 
(props.getGlobalZoomFactor() * 100)) + '%';
@@ -934,7 +940,10 @@ public class ConfigGuiOptionsTab {
     
props.setDrawBorderAroundCanvasNames(wDrawBorderAroundCanvasNames.getSelection());
     props.setInfiniteCanvasMoveEnabled(wEnableInfiniteMove.getSelection());
     props.setZoomScrollingDisabled(wDisableZoomScrolling.getSelection());
-    props.setDarkMode(wDarkMode.getSelection());
+    // On macOS (and other non-Windows), dark mode follows system; persist 
system theme, not
+    // checkbox
+    boolean darkMode = Const.isWindows() ? wDarkMode.getSelection() : 
Display.isSystemDarkTheme();
+    props.setDarkMode(darkMode);
     props.setHidingMenuBar(wHideMenuBar.getSelection());
     props.setShowTableViewToolbar(wShowTableViewToolbar.getSelection());
 

Reply via email to