diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleMainPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleMainPanel.java index 8f715fd04cc5..de4f41a63d35 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleMainPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleMainPanel.java @@ -18,11 +18,14 @@ package com.intellij.application.options.codeStyle; import com.intellij.application.options.CodeStyleAbstractPanel; import com.intellij.application.options.TabbedLanguageCodeStylePanel; +import com.intellij.ide.DataManager; import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.Language; +import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.application.ApplicationBundle; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.options.ConfigurationException; +import com.intellij.openapi.options.ex.Settings; import com.intellij.psi.codeStyle.CodeStyleScheme; import com.intellij.psi.codeStyle.CodeStyleSchemes; import com.intellij.ui.components.labels.SwingActionLink; @@ -103,7 +106,12 @@ public class CodeStyleMainPanel extends JPanel implements TabbedLanguageCodeStyl @Override public void afterCurrentSettingsChanged() { - mySchemesPanel.updateOnCurrentSettingsChange(); + mySchemesPanel.updateOnCurrentSettingsChange(); + DataContext context = DataManager.getInstance().getDataContext(mySettingsPanel); + Settings settings = Settings.KEY.getData(context); + if (settings != null) { + settings.revalidate(); + } } @Override diff --git a/platform/platform-impl/src/com/intellij/openapi/options/ex/Settings.java b/platform/platform-impl/src/com/intellij/openapi/options/ex/Settings.java index 5b05bb8c4eaf..829f2e2dd63a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/ex/Settings.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/ex/Settings.java @@ -69,4 +69,9 @@ public abstract class Settings { private static Configurable choose(Configurable configurable, Configurable variant) { return variant != null ? variant : configurable; } + + /** + * Used to handle programmatic settings changes when no UI events are sent. + */ + public void revalidate() {} } diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableEditor.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableEditor.java index d9b8cdee50ac..f6d0d8efb31a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/ConfigurableEditor.java @@ -187,7 +187,7 @@ class ConfigurableEditor extends AbstractEditor implements AnActionListener, AWT } } - private void requestUpdate() { + void requestUpdate() { final Configurable configurable = myConfigurable; myQueue.queue(new Update(this) { @Override diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java index e828aa129760..64ba5a177a92 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java @@ -76,6 +76,11 @@ final class SettingsEditor extends AbstractEditor implements DataProvider { myFilter.update(null, false, true); return myTreeView.select(configurable); } + + @Override + public void revalidate() { + myEditor.requestUpdate(); + } }; mySearch = new SettingsSearch() { @Override