mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-11 23:54:18 +00:00
Fix for transformed Components not being centred correctly
This commit is contained in:
parent
182b0e4cb0
commit
6d356423e2
1 changed files with 8 additions and 6 deletions
|
|
@ -434,9 +434,9 @@ struct Component::ComponentHelpers
|
|||
static Rectangle<int> getParentOrMainMonitorBounds (const Component& comp)
|
||||
{
|
||||
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)
|
||||
|
|
@ -1250,8 +1250,10 @@ void Component::setBounds (const String& newBoundsExpression)
|
|||
void Component::setBoundsRelative (const float x, const float y,
|
||||
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),
|
||||
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)
|
||||
{
|
||||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue