From 8056433e742bfcd30f2b4b440f7c9060113b8e16 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 13 Jan 2017 17:33:38 +0300 Subject: [PATCH] introduce reentrant bulkUpdate() --- .../com/intellij/openapi/options/SettingsEditor.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 {