summaryrefslogtreecommitdiff
path: root/src/gui/widgets/window.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-02-15 17:01:46 +0300
committerAndrei Karas <akaras@inbox.ru>2014-02-15 17:01:46 +0300
commit382067b05c4fe97bcf0da0143405375ec295f7c6 (patch)
treef668cd2595ac0c85f0942f88729d3ff1956676fa /src/gui/widgets/window.cpp
parentee8191705826d978b7793497fdd307536c709bff (diff)
parent9b329556e748050c4300174e9bdc72b15e5b8cc5 (diff)
downloadplus-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.cpp22
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)