diff options
author | Jarno Malmari <ext-jarno.malmari@nokia.com> | 2010-07-21 15:58:17 +0300 |
---|---|---|
committer | Dominik Kapusta <dominik.kapusta@teleca.com> | 2010-07-22 11:39:59 +0200 |
commit | f353deb4809630b2ed24ace9943fffdd41071eb2 (patch) | |
tree | befe3afa7a36cf12f4d9d5a68095d7468a840074 | |
parent | d6036b98fea64443183468588762341814bc525a (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.cpp | 22 |
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(); } } |