diff --git a/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java b/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java index 1a49c32d5113..42811a19a097 100644 --- a/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java @@ -20,6 +20,7 @@ import com.intellij.ui.content.TabbedContent; import org.jetbrains.annotations.NotNull; import javax.swing.*; +import java.awt.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -39,12 +40,24 @@ public class TabbedContentImpl extends ContentImpl implements TabbedContent { @Override public void addContent(@NotNull JComponent content, @NotNull String name, boolean selectTab) { - myTabs.add(Pair.create(name, content)); - if (selectTab) { + Pair tab = Pair.create(name, content); + if (!myTabs.contains(tab)) { + myTabs.add(tab); + } + if (selectTab && getComponent() != content) { setComponent(content); } } + @Override + public void setComponent(JComponent component) { + Container parent = getComponent().getParent(); + parent.remove(getComponent()); + parent.add(component); + + super.setComponent(component); + } + @Override public void removeContent(@NotNull JComponent content) { Pair toRemove = null;