summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qapplication_s60.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index c94d66d..587c0f2 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -273,19 +273,16 @@ void QS60Data::controlVisibilityChanged(CCoeControl *control, bool visible)
TRect QS60Data::clientRect()
{
TRect r = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
- if (S60->partialKeyboardOpen) {
- // Adjust client rect when splitview is open, since for some curious reason
- // native side insists that clientRect starts from (0,0) even though status
- // pane might be visible.
+ if (S60->partialKeyboardOpen && !QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)) {
+ // Adjust client rect when splitview is open
+ // We want it to take the client rect space as if the splitview keyboard was not there
TRect statusPaneRect;
TRect mainRect;
AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane, statusPaneRect);
AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainRect);
int clientAreaHeight = mainRect.Height();
CEikStatusPane *const s = S60->statusPane();
- if (s && s->IsVisible())
- r.Move(0, statusPaneRect.Height());
- else
+ if (!(s && s->IsVisible()))
clientAreaHeight += statusPaneRect.Height();
r.SetHeight(clientAreaHeight);
}