From 47edb0ad3e28b97c614f1adc56d4d86ec5f545b7 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Thu, 12 Nov 2009 14:19:31 +0300 Subject: [PATCH] TreeUi: CME fix when state is being restored --- .../intellij/ide/util/treeView/UpdaterTreeState.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/UpdaterTreeState.java b/platform/platform-api/src/com/intellij/ide/util/treeView/UpdaterTreeState.java index e5aa870fa1..eb2faef6e4 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/UpdaterTreeState.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/UpdaterTreeState.java @@ -33,7 +33,7 @@ public class UpdaterTreeState { protected WeakHashMap myAdjustedSelection = new WeakHashMap(); protected WeakHashMap myDisposedElements = new WeakHashMap(); protected WeakHashMap myToExpand = new WeakHashMap(); - private boolean myProcessingNow; + private int myProcessingCount; private boolean myCanRunRestore = true; @@ -101,15 +101,12 @@ public class UpdaterTreeState { } public boolean process(Runnable runnable) { - boolean oldValue = isProcessingNow(); try { setProcessingNow(true); runnable.run(); } finally { - if (!oldValue) { - setProcessingNow(false); - } + setProcessingNow(false); } return isEmpty(); @@ -121,7 +118,7 @@ public class UpdaterTreeState { public boolean isProcessingNow() { - return myProcessingNow; + return myProcessingCount > 0; } public void addAll(final UpdaterTreeState state) { @@ -342,8 +339,12 @@ public class UpdaterTreeState { } public void setProcessingNow(boolean processingNow) { - myProcessingNow = processingNow; - if (!processingNow) { + if (processingNow) { + myProcessingCount++; + } else { + myProcessingCount--; + } + if (!isProcessingNow()) { myUi.maybeReady(); } } -- 2.11.4.GIT