mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
schemeChangedOrSwitched must call myDispatcher.getMulticaster().globalSchemeChange
This commit is contained in:
+1
-1
@@ -274,7 +274,7 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
|
||||
boolean refreshEditors = activeSchemeModified && schemeManager.getCurrentScheme() == activeOriginalScheme;
|
||||
schemeManager.setSchemes(includingInvisible(result, schemeManager), activeOriginalScheme);
|
||||
if (refreshEditors) {
|
||||
EditorColorsManagerImpl.schemeChangedOrSwitched();
|
||||
((EditorColorsManagerImpl)EditorColorsManager.getInstance()).schemeChangedOrSwitched(null);
|
||||
}
|
||||
|
||||
final boolean isEditorThemeDark = ColorUtil.isDark(activeOriginalScheme.getDefaultBackground());
|
||||
|
||||
@@ -20,11 +20,11 @@ import com.intellij.ide.ui.laf.darcula.DarculaInstaller;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.ServiceKt;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsScheme;
|
||||
import com.intellij.openapi.editor.colors.ex.DefaultColorSchemesManager;
|
||||
import com.intellij.openapi.editor.colors.impl.EditorColorsManagerImpl;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
import com.intellij.openapi.options.BaseConfigurable;
|
||||
import com.intellij.openapi.options.SearchableConfigurable;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
@@ -289,10 +289,11 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab
|
||||
}
|
||||
myComponent.updateCombo();
|
||||
|
||||
EditorUtil.reinitSettings();
|
||||
|
||||
if (updateEditorScheme) {
|
||||
EditorColorsManagerImpl.schemeChangedOrSwitched();
|
||||
((EditorColorsManagerImpl)EditorColorsManager.getInstance()).schemeChangedOrSwitched(null);
|
||||
}
|
||||
else {
|
||||
EditorFactory.getInstance().refreshAllEditors();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -109,9 +109,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers
|
||||
@Override
|
||||
public void onCurrentSchemeSwitched(@Nullable EditorColorsScheme oldScheme, @Nullable EditorColorsScheme newScheme) {
|
||||
LafManager.getInstance().updateUI();
|
||||
schemeChangedOrSwitched();
|
||||
|
||||
fireChanges(newScheme);
|
||||
schemeChangedOrSwitched(newScheme);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -173,15 +171,22 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void schemeChangedOrSwitched() {
|
||||
EditorColorsManagerImpl manager = (EditorColorsManagerImpl)getInstance();
|
||||
manager.schemeChangedOrSwitched(manager.getGlobalScheme());
|
||||
}
|
||||
|
||||
public void schemeChangedOrSwitched(@Nullable EditorColorsScheme newScheme) {
|
||||
EditorFactory.getInstance().refreshAllEditors();
|
||||
// refreshAllEditors is not enough - for example, change "Errors and warnings -> Typo" from green (default) to red
|
||||
for (Project project : ProjectManager.getInstance().getOpenProjects()) {
|
||||
DaemonCodeAnalyzer.getInstance(project).restart();
|
||||
}
|
||||
|
||||
// we need to push events to components that use editor font, e.g. HTML editor panes
|
||||
EditorColorsManagerImpl instance = (EditorColorsManagerImpl)getInstance();
|
||||
instance.myTreeDispatcher.getMulticaster().globalSchemeChange(instance.getGlobalScheme());
|
||||
myDispatcher.getMulticaster().globalSchemeChange(newScheme);
|
||||
myTreeDispatcher.getMulticaster().globalSchemeChange(newScheme);
|
||||
}
|
||||
|
||||
static class ReadOnlyColorsSchemeImpl extends EditorColorsSchemeImpl implements ReadOnlyColorsScheme {
|
||||
@@ -301,11 +306,6 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers
|
||||
return mySchemeManager.findSchemeByName(schemeName);
|
||||
}
|
||||
|
||||
private void fireChanges(EditorColorsScheme scheme) {
|
||||
myDispatcher.getMulticaster().globalSchemeChange(scheme);
|
||||
myTreeDispatcher.getMulticaster().globalSchemeChange(scheme);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEditorColorsListener(@NotNull EditorColorsListener listener) {
|
||||
myDispatcher.addListener(listener);
|
||||
|
||||
Reference in New Issue
Block a user