diff --git a/modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp b/modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp index ee2ab169a6..35cd9d5543 100644 --- a/modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp +++ b/modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp @@ -93,7 +93,26 @@ void TabBarButton::calcAreas (Rectangle& extraComp, Rectangle& textAre } if (extraComponent != nullptr) + { extraComp = lf.getTabButtonExtraComponentBounds (*this, textArea, *extraComponent); + + const TabbedButtonBar::Orientation orientation = owner.getOrientation(); + + if (orientation == TabbedButtonBar::TabsAtLeft || orientation == TabbedButtonBar::TabsAtRight) + { + if (extraComp.getCentreY() > textArea.getCentreY()) + textArea.setBottom (jmin (textArea.getBottom(), extraComp.getY())); + else + textArea.setTop (jmax (textArea.getY(), extraComp.getBottom())); + } + else + { + if (extraComp.getCentreX() > textArea.getCentreX()) + textArea.setRight (jmin (textArea.getRight(), extraComp.getX())); + else + textArea.setLeft (jmax (textArea.getX(), extraComp.getRight())); + } + } } Rectangle TabBarButton::getTextArea() const