diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java index d0b110f083bf..2d8bffe98d04 100644 --- a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java @@ -33,9 +33,8 @@ import com.intellij.ui.components.panels.Wrapper; import com.intellij.ui.content.*; import com.intellij.ui.switcher.SwitchProvider; import com.intellij.ui.switcher.SwitchTarget; -import com.intellij.util.containers.ContainerUtil; import com.intellij.util.SmartList; - +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -191,7 +190,11 @@ public class ContentManagerImpl implements ContentManager, PropertyChangeListene private void doAddContent(@NotNull final Content content, final int index) { ApplicationManager.getApplication().assertIsDispatchThread(); - if (myContents.contains(content)) return; + if (myContents.contains(content)) { + myContents.remove(content); + myContents.add(index == -1 ? myContents.size() : index, content); + return; + } ((ContentImpl)content).setManager(this); final int insertIndex = index == -1 ? myContents.size() : index; @@ -703,6 +706,7 @@ public class ContentManagerImpl implements ContentManager, PropertyChangeListene myContentWithChangedComponent.clear(); myUI = null; myListeners.clear(); + dataProviders.clear(); } @Override |