aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDominik Kapusta <dominik.kapusta@teleca.com>2010-09-13 13:44:21 +0200
committerDominik Kapusta <dominik.kapusta@teleca.com>2010-09-13 13:46:02 +0200
commit4eb3f44d145d7dc02dfe03d54dad420e40a85f78 (patch)
tree456b4432ede4a200f9fcec2a22428c77bc0af4fb /src
parent46e317aa2b639235426b29429d6673c52f6f3b55 (diff)
Changes: Fix MApplicationPage exposed content calculation.
RevBy: Daniel d'Andrada Details: Properly deal with cases when navigation bar is placed on the bottom and/or dock widget is placed on top.
Diffstat (limited to 'src')
-rw-r--r--src/corelib/widgets/mapplicationwindow.cpp11
-rw-r--r--src/corelib/widgets/mscenewindow.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/corelib/widgets/mapplicationwindow.cpp b/src/corelib/widgets/mapplicationwindow.cpp
index e4ec9490..fe692249 100644
--- a/src/corelib/widgets/mapplicationwindow.cpp
+++ b/src/corelib/widgets/mapplicationwindow.cpp
@@ -470,11 +470,18 @@ void MApplicationWindowPrivate::_q_updatePageExposedContentRect()
const bool navBarIsCovering = pageAreaMaximized ? showingNavigationBar :
(page->componentDisplayMode(MApplicationPage::NavigationBar) == MApplicationPageModel::Show);
if (navBarIsCovering) {
- topCoverage += navigationBar->size().height();
+ if (navigationBar->alignment().testFlag(Qt::AlignTop))
+ topCoverage += navigationBar->size().height();
+ else if (navigationBar->alignment().testFlag(Qt::AlignBottom))
+ bottomCoverage += navigationBar->size().height();
}
+
if (showingDockWidget) {
- bottomCoverage += dockWidget->size().height();
+ if (dockWidget->alignment().testFlag(Qt::AlignTop))
+ topCoverage += dockWidget->size().height();
+ else if (dockWidget->alignment().testFlag(Qt::AlignBottom))
+ bottomCoverage += dockWidget->size().height();
}
pageExposedContentRect.setY(topCoverage);
diff --git a/src/corelib/widgets/mscenewindow.h b/src/corelib/widgets/mscenewindow.h
index bf1481b5..80bbe95d 100644
--- a/src/corelib/widgets/mscenewindow.h
+++ b/src/corelib/widgets/mscenewindow.h
@@ -412,6 +412,7 @@ private:
friend class MSceneWindowView;
friend class MSceneManagerPrivate;
+ friend class MApplicationWindowPrivate;
/* TODO: temporarily required for calling MSceneWindow::done()
from MSceneManager::{hide,show}Window{,Now}()*/