diff --git a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java index 42a7a0639a5..844bd280056 100644 --- a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java +++ b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java @@ -430,7 +430,12 @@ public void setTheme(String themeId, boolean restore) { return; } } - // Theme not found (e.g. it was uninstalled); fall back to default + // In OS high-contrast mode keep the native OS colors instead of forcing a theme + if (display != null && display.getHighContrast()) { + ILog.of(ThemeEngine.class) + .warn("Theme '" + themeId + "' not found; using OS high contrast colors."); //$NON-NLS-1$ //$NON-NLS-2$ + return; + } ILog.of(ThemeEngine.class) .warn("Theme '" + themeId + "' not found; falling back to default theme."); //$NON-NLS-1$ //$NON-NLS-2$ if (!E4_DEFAULT_THEME_ID.equals(themeId)) { diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF index 37a7e9d1ea0..75d82205e69 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.e4.ui.workbench.swt;singleton:=true -Bundle-Version: 0.18.100.qualifier +Bundle-Version: 0.18.200.qualifier Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java index e544e7744b9..fe21a544490 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java @@ -324,8 +324,8 @@ private void setCSSContextVariables(IApplicationContext applicationContext, IEcl context.set(E4Application.THEME_ID, DEFAULT_THEME_ID); } } else { - // Check if user has overridden the branding/command-line theme - String userThemeId = getProductScopedThemeId(); + // Do not let a product/workspace default override the OS high-contrast theme + String userThemeId = highContrastMode ? null : getProductScopedThemeId(); if (userThemeId != null) { context.set(E4Application.THEME_ID, userThemeId); } else {