Browse Source

Fix for ResizableWindow handling size constraints that are set before it gets made visible

tags/2021-05-28
jules 9 years ago
parent
commit
00d98c991d
2 changed files with 13 additions and 6 deletions
  1. +12
    -6
      modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
  2. +1
    -0
      modules/juce_gui_basics/windows/juce_ResizableWindow.h

+ 12
- 6
modules/juce_gui_basics/windows/juce_ResizableWindow.cpp View File

@@ -335,9 +335,7 @@ void ResizableWindow::setConstrainer (ComponentBoundsConstrainer* newConstrainer
resizableBorder = nullptr;
setResizable (shouldBeResizable, useBottomRightCornerResizer);
if (ComponentPeer* const peer = getPeer())
peer->setConstrainer (newConstrainer);
updatePeerConstrainer();
}
}
@@ -384,9 +382,7 @@ void ResizableWindow::lookAndFeelChanged()
if (isOnDesktop())
{
Component::addToDesktop (getDesktopWindowStyleFlags());
if (ComponentPeer* const peer = getPeer())
peer->setConstrainer (constrainer);
updatePeerConstrainer();
}
}
@@ -492,7 +488,10 @@ bool ResizableWindow::isKioskMode() const
void ResizableWindow::updateLastPosIfShowing()
{
if (isShowing())
{
updateLastPosIfNotFullScreen();
updatePeerConstrainer();
}
}
void ResizableWindow::updateLastPosIfNotFullScreen()
@@ -501,6 +500,13 @@ void ResizableWindow::updateLastPosIfNotFullScreen()
lastNonFullScreenPos = getBounds();
}
void ResizableWindow::updatePeerConstrainer()
{
if (isOnDesktop())
if (ComponentPeer* const peer = getPeer())
peer->setConstrainer (constrainer);
}
void ResizableWindow::parentSizeChanged()
{
if (isFullScreen() && getParentComponent() != nullptr)


+ 1
- 0
modules/juce_gui_basics/windows/juce_ResizableWindow.h View File

@@ -395,6 +395,7 @@ private:
void updateLastPosIfNotFullScreen();
void updateLastPosIfShowing();
void setContent (Component*, bool takeOwnership, bool resizeToFit);
void updatePeerConstrainer();
#if JUCE_CATCH_DEPRECATED_CODE_MISUSE
// The parameters for these methods have changed - please update your code!


Loading…
Cancel
Save