IJPL-222428 Islands are gone when Sync with OS enabled and Light with Light header theme was set as preferred in 2025.2

GitOrigin-RevId: ac23f463a973423beadac24322587ac10bee96ee
This commit is contained in:
Alexander Lobas
2025-12-10 16:42:59 +00:00
committed by intellij-monorepo-bot
parent 63f82e4ac9
commit 5e462459ae
@@ -61,14 +61,18 @@ suspend fun applyIslandsTheme(afterImportSettings: Boolean) {
private suspend fun enableTheme(properties: PropertiesComponent) {
val lafManager = serviceAsync<LafManager>()
val currentTheme = lafManager.currentUIThemeLookAndFeel?.id ?: return
if (currentTheme != "ExperimentalDark" && currentTheme != "ExperimentalLight" && currentTheme != "ExperimentalLightWithLightHeader") {
if (currentTheme == "Islands Light" || currentTheme == "Islands Dark") {
resetLafSettingsToDefault(lafManager, serviceAsync<UiThemeProviderListManager>())
}
return
}
val colorsManager = EditorColorsManager.getInstance()
val colorsManager = serviceAsync<EditorColorsManager>()
val currentEditorTheme = colorsManager.globalScheme.displayName
if (currentEditorTheme != "Light" && currentEditorTheme != "Dark" && currentEditorTheme != "Rider Light" && currentEditorTheme != "Rider Dark") {
return
}
@@ -80,7 +84,8 @@ private suspend fun enableTheme(properties: PropertiesComponent) {
val isLight = JBColor.isBright()
val newTheme = UiThemeProviderListManager.getInstance().findThemeById(if (isLight) "Islands Light" else "Islands Dark") ?: return
val themeManager = serviceAsync<UiThemeProviderListManager>()
val newTheme = themeManager.findThemeById(if (isLight) "Islands Light" else "Islands Dark") ?: return
properties.setValue("ide.islands.show.feedback3", "done")
@@ -95,16 +100,16 @@ private suspend fun enableTheme(properties: PropertiesComponent) {
newTheme.installEditorScheme(colorsManager.getScheme(editorScheme) ?: colorsManager.defaultScheme)
resetLafSettingsToDefault(lafManager, properties)
resetLafSettingsToDefault(lafManager, themeManager)
lafManager.updateUI()
}
private suspend fun changeColorSchemeForRiderIslandsDarkTheme(afterImportSettings: Boolean): Boolean {
val colorsManager = EditorColorsManager.getInstance()
val lafManager = serviceAsync<LafManager>()
val currentLaf = lafManager.currentUIThemeLookAndFeel ?: return false
val colorsManager = serviceAsync<EditorColorsManager>()
val colorScheme = if (afterImportSettings) "Islands Dark" else "Rider Dark"
if (currentLaf.id != "Islands Dark" || colorsManager.globalScheme.displayName != colorScheme) {
@@ -118,15 +123,11 @@ private suspend fun changeColorSchemeForRiderIslandsDarkTheme(afterImportSetting
return true
}
private fun resetLafSettingsToDefault(lafManager: LafManager, properties: PropertiesComponent) {
properties.setValue("ide.islands.debug.resetValue", "start")
val defaultLightLaf = lafManager.defaultLightLaf ?: return
val defaultDarkLaf = lafManager.defaultDarkLaf ?: return
private fun resetLafSettingsToDefault(lafManager: LafManager, themeManager: UiThemeProviderListManager) {
val defaultLightLaf = themeManager.findThemeById("Islands Light") ?: return
val defaultDarkLaf = themeManager.findThemeById("Islands Dark") ?: return
lafManager.setPreferredLightLaf(defaultLightLaf)
lafManager.setPreferredDarkLaf(defaultDarkLaf)
lafManager.resetPreferredEditorColorScheme()
properties.setValue("ide.islands.debug.resetValue", "finish: ${defaultLightLaf.id} | ${defaultDarkLaf.id}")
}