diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java index b6c0d607c066..45a9d216e332 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java @@ -73,6 +73,11 @@ class ComboContentLayout extends ContentLayout { myComboLabel.setBounds(eachX, eachY, width, bounds.height); } + @Override + public int getMinimumWidth() { + return myIdLabel != null ? myIdLabel.getPreferredSize().width : 0; + } + @Override public void paintComponent(Graphics g) { if (!isToDrawCombo()) return; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java index b903e3878fa2..706c979666d9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java @@ -61,6 +61,8 @@ abstract class ContentLayout { public abstract void rebuild(); + public abstract int getMinimumWidth(); + public abstract void contentAdded(ContentManagerEvent event); public abstract void contentRemoved(ContentManagerEvent event); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java index f146449bd81f..9f6b8411ffa6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java @@ -253,6 +253,23 @@ class TabContentLayout extends ContentLayout { myLastLayout = data; } + @Override + public int getMinimumWidth() { + int result = 0; + if (myIdLabel != null) { + result += myIdLabel.getPreferredSize().width; + Insets insets = myIdLabel.getInsets(); + if (insets != null) { + result += insets.left + insets.right; + } + } + if (myLastLayout != null) { + result += myLastLayout.moreRectWidth + myLastLayout.requiredWidth; + result -= myLastLayout.toLayout.size() > 1 ? myLastLayout.moreRectWidth + 1 : -14; + } + return result; + } + static void dropTab(final LayoutData data, final ContentTabLabel toDropLabel) { data.requiredWidth -= (toDropLabel.getPreferredSize().width + 1); data.toDrop.add(toDropLabel); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java index a47f9ca87997..06726ba258b8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java @@ -216,7 +216,8 @@ public class ToolWindowContentUi extends JPanel implements ContentUI, PropertyCh } public Dimension getMinimumSize() { - return getPreferredSize(); + Insets insets = getInsets(); + return new Dimension(insets.left + insets.right + getCurrentLayout().getMinimumWidth(), super.getMinimumSize().height); } public Dimension getPreferredSize() {