aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarno Malmari <ext-jarno.malmari@nokia.com>2010-07-21 15:58:17 +0300
committerDominik Kapusta <dominik.kapusta@teleca.com>2010-07-22 11:39:59 +0200
commitf353deb4809630b2ed24ace9943fffdd41071eb2 (patch)
treebefe3afa7a36cf12f4d9d5a68095d7468a840074
parentd6036b98fea64443183468588762341814bc525a (diff)
Fixes: NB#181303, Navigation controls won't come back when hardware keyboard opened.
RevBy: Dominik Details: Cannot rely on vkb sending empty region because it can have toolbar opened. Always restorePageArea when hardware keyboard is opened.
-rw-r--r--src/corelib/widgets/mapplicationwindow.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/corelib/widgets/mapplicationwindow.cpp b/src/corelib/widgets/mapplicationwindow.cpp
index 9f8be92e..50ac033f 100644
--- a/src/corelib/widgets/mapplicationwindow.cpp
+++ b/src/corelib/widgets/mapplicationwindow.cpp
@@ -233,6 +233,10 @@ void MApplicationWindowPrivate::windowStateChangeEvent(QWindowStateChangeEvent *
void MApplicationWindowPrivate::maximizePageArea()
{
+ if (pageAreaMaximized) {
+ return;
+ }
+
pageAreaMaximized = true;
// When maximized, the window is in control of these components.
@@ -249,6 +253,10 @@ void MApplicationWindowPrivate::restorePageArea()
{
Q_Q(MApplicationWindow);
+ if (!pageAreaMaximized) {
+ return;
+ }
+
pageAreaMaximized = false;
if (page) {
@@ -281,15 +289,13 @@ void MApplicationWindowPrivate::_q_inputPanelAreaChanged(const QRect &panelRect)
// Also, if we have keyboard focus in navigation controls then no need to make page
// area larger.
- if (pageAreaMaximized
- && (panelRect.isEmpty() || q->orientation() == M::Portrait)) {
+ if (panelRect.isEmpty()
+ || MKeyboardStateTracker::instance()->isOpen()
+ || q->orientation() == M::Portrait
+ || navigationBar->focusItem()
+ || dockWidget->focusItem()) {
restorePageArea();
- } else if (!pageAreaMaximized
- && !panelRect.isEmpty()
- && (q->orientation() == M::Landscape)
- && !MKeyboardStateTracker::instance()->isOpen()
- && !navigationBar->focusItem()
- && !dockWidget->focusItem()) {
+ } else {
maximizePageArea();
}
}