| @@ -434,9 +434,9 @@ struct Component::ComponentHelpers | |||||
| static Rectangle<int> getParentOrMainMonitorBounds (const Component& comp) | static Rectangle<int> getParentOrMainMonitorBounds (const Component& comp) | ||||
| { | { | ||||
| if (Component* p = comp.getParentComponent()) | if (Component* p = comp.getParentComponent()) | ||||
| return p->getLocalBounds(); | |||||
| return comp.getLocalArea (p, p->getLocalBounds()); | |||||
| return Desktop::getInstance().getDisplays().getMainDisplay().userArea; | |||||
| return convertFromParentSpace (comp, Desktop::getInstance().getDisplays().getMainDisplay().userArea); | |||||
| } | } | ||||
| static void releaseAllCachedImageResources (Component& c) | static void releaseAllCachedImageResources (Component& c) | ||||
| @@ -1250,8 +1250,10 @@ void Component::setBounds (const String& newBoundsExpression) | |||||
| void Component::setBoundsRelative (const float x, const float y, | void Component::setBoundsRelative (const float x, const float y, | ||||
| const float w, const float h) | const float w, const float h) | ||||
| { | { | ||||
| const int pw = getParentWidth(); | |||||
| const int ph = getParentHeight(); | |||||
| const Rectangle<int> parentArea (ComponentHelpers::getParentOrMainMonitorBounds (*this)); | |||||
| const int pw = parentArea.getWidth(); | |||||
| const int ph = parentArea.getHeight(); | |||||
| setBounds (roundToInt (x * pw), | setBounds (roundToInt (x * pw), | ||||
| roundToInt (y * ph), | roundToInt (y * ph), | ||||
| @@ -1261,8 +1263,8 @@ void Component::setBoundsRelative (const float x, const float y, | |||||
| void Component::setCentrePosition (const int x, const int y) | void Component::setCentrePosition (const int x, const int y) | ||||
| { | { | ||||
| setTopLeftPosition (x - getWidth() / 2, | |||||
| y - getHeight() / 2); | |||||
| setTopLeftPosition (ComponentHelpers::convertFromParentSpace (*this, Point<int> (x, y)) | |||||
| .translated (getWidth() / -2, getHeight() / -2)); | |||||
| } | } | ||||
| void Component::setCentreRelative (const float x, const float y) | void Component::setCentreRelative (const float x, const float y) | ||||