1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Minor update to ResizableWindow positioning, and slider tooltips.

This commit is contained in:
jules 2012-01-02 10:57:11 +00:00
parent 38703ee4c3
commit f4cbb721a5
3 changed files with 28 additions and 25 deletions

View file

@ -535,19 +535,26 @@ bool ResizableWindow::restoreWindowStateFromString (const String& s)
if (newPos.isEmpty())
return false;
const Rectangle<int> screen (Desktop::getInstance().getMonitorAreaContaining (newPos.getCentre()));
ComponentPeer* const peer = isOnDesktop() ? getPeer() : nullptr;
if (peer != nullptr)
peer->getFrameSize().addTo (newPos);
if (! screen.contains (newPos))
{
newPos.setSize (jmin (newPos.getWidth(), screen.getWidth()),
jmin (newPos.getHeight(), screen.getHeight()));
Desktop& desktop = Desktop::getInstance();
RectangleList allMonitors (desktop.getAllMonitorDisplayAreas());
allMonitors.clipTo (newPos);
const Rectangle<int> onScreenArea (allMonitors.getBounds());
newPos.setPosition (jlimit (screen.getX(), screen.getRight() - newPos.getWidth(), newPos.getX()),
jlimit (screen.getY(), screen.getBottom() - newPos.getHeight(), newPos.getY()));
if (onScreenArea.getWidth() * onScreenArea.getHeight() < 32 * 32)
{
const Rectangle<int> screen (desktop.getMonitorAreaContaining (newPos.getCentre()));
newPos.setSize (jmin (newPos.getWidth(), screen.getWidth()),
jmin (newPos.getHeight(), screen.getHeight()));
newPos.setPosition (jlimit (screen.getX(), screen.getRight() - newPos.getWidth(), newPos.getX()),
jlimit (screen.getY(), screen.getBottom() - newPos.getHeight(), newPos.getY()));
}
}
if (peer != nullptr)