diff --git a/platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java b/platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java index 59f0e4e836d4..343711fabd3a 100644 --- a/platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java +++ b/platform/platform-api/src/com/intellij/openapi/options/SettingsEditor.java @@ -83,13 +83,19 @@ public abstract class SettingsEditor implements Disposable { } public final void resetFrom(Settings s) { - myIsInUpdate = true; + bulkUpdate(() -> resetEditorFrom(s)); + } + + public final void bulkUpdate(Runnable runnable) { + boolean wasInUpdate = myIsInUpdate; try { - resetEditorFrom(s); + myIsInUpdate = true; + runnable.run(); } finally { - myIsInUpdate = false; + myIsInUpdate = wasInUpdate; } + fireEditorStateChanged(); } public final void applyTo(Settings s) throws ConfigurationException {