diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-02-15 17:01:46 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-02-15 17:01:46 +0300 |
commit | 382067b05c4fe97bcf0da0143405375ec295f7c6 (patch) | |
tree | f668cd2595ac0c85f0942f88729d3ff1956676fa /src/gui/widgets/window.cpp | |
parent | ee8191705826d978b7793497fdd307536c709bff (diff) | |
parent | 9b329556e748050c4300174e9bdc72b15e5b8cc5 (diff) | |
download | plus-382067b05c4fe97bcf0da0143405375ec295f7c6.tar.gz plus-382067b05c4fe97bcf0da0143405375ec295f7c6.tar.bz2 plus-382067b05c4fe97bcf0da0143405375ec295f7c6.tar.xz plus-382067b05c4fe97bcf0da0143405375ec295f7c6.zip |
Merge branch 'master' into stable
Diffstat (limited to 'src/gui/widgets/window.cpp')
-rw-r--r-- | src/gui/widgets/window.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index cd00d2568..36372dcaa 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -1059,6 +1059,28 @@ void Window::adjustPositionAfterResize(const int oldScreenWidth, } ensureOnScreen(); + adjustSizeToScreen(); +} + +void Window::adjustSizeToScreen() +{ + if (!mGrip) + return; + + const int screenWidth = mainGraphics->mWidth; + const int screenHeight = mainGraphics->mHeight; + const int oldWidth = mDimension.width; + const int oldHeight = mDimension.height; + if (oldWidth + mDimension.x > screenWidth) + mDimension.x = 0; + if (oldHeight + mDimension.y > screenHeight) + mDimension.x = 0; + if (mDimension.width > screenWidth) + mDimension.width = screenWidth; + if (mDimension.height > screenHeight) + mDimension.height = screenHeight; + if (oldWidth != mDimension.width || oldHeight != mDimension.height) + widgetResized(gcn::Event(this)); } int Window::getResizeHandles(const gcn::MouseEvent &event) |