diff --git a/source/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java b/source/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java index 2191c68c7b5f..5956c49fc5e7 100644 --- a/source/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java +++ b/source/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java @@ -11,6 +11,8 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.wm.FocusWatcher; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.openapi.wm.ex.IdeFocusTraversalPolicy; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ArrayListSet; import org.jdom.Element; @@ -260,13 +262,24 @@ public class EditorsSplitters extends JPanel { return editors.toArray(new FileEditor[editors.size()]); } - protected void updateFileIcon(final VirtualFile file, final boolean b) { + protected void updateFileIcon(final VirtualFile file, final boolean useAlarm) { LOG.assertTrue(file != null); - final EditorWindow[] windows = findWindows(file); - if (windows != null) { - for (int i = 0; i < windows.length; i++) { - windows[i].updateFileIcon(file); + Runnable updateRunnable = new Runnable() { + public void run() { + final EditorWindow[] windows = findWindows(file); + if (windows != null) { + for (int i = 0; i < windows.length; i++) { + windows[i].updateFileIcon(file); + } + } } + }; + + if (useAlarm) { + ApplicationManager.getApplication().invokeLater(updateRunnable, ModalityState.NON_MMODAL); + } + else { + updateRunnable.run(); } } diff --git a/source/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java b/source/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java index 6d7117e44cbf..c964fa6872cf 100644 --- a/source/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java +++ b/source/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java @@ -1163,7 +1163,7 @@ public final class FileEditorManagerImpl extends FileEditorManagerEx implements for (int i = openFiles.length - 1; i >= 0; i--) { final VirtualFile file = openFiles[i]; LOG.assertTrue(file != null); - updateFileIcon(file, false); + updateFileIcon(file, true); } } }