summaryrefslogtreecommitdiffstats
path: root/src/gui/s60framework
diff options
context:
space:
mode:
authorJani Hautakangas <jani.hautakangas@nokia.com>2011-06-16 08:06:36 (GMT)
committerJani Hautakangas <jani.hautakangas@nokia.com>2011-06-17 06:57:55 (GMT)
commitf1d0c5bbd4a33bb0f6398915d11dc93dc659ecf6 (patch)
tree661fa5d86b3b48688da3e85f6fc50d028fd298e0 /src/gui/s60framework
parentbe681e71510de948dfc32a647ecef5def6c01118 (diff)
downloadQt-f1d0c5bbd4a33bb0f6398915d11dc93dc659ecf6.zip
Qt-f1d0c5bbd4a33bb0f6398915d11dc93dc659ecf6.tar.gz
Qt-f1d0c5bbd4a33bb0f6398915d11dc93dc659ecf6.tar.bz2
Remove unnecessary resizes during orientation change
Orientation change causes unnecessary resize to top level window on Symbian. This causes recreation of EGL surfaces which is not wanted. Task-number: QTBUG-19911 Reviewed-by: Sami Merila
Diffstat (limited to 'src/gui/s60framework')
-rw-r--r--src/gui/s60framework/qs60mainappui.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp
index 4f08fe2..e2ec78c 100644
--- a/src/gui/s60framework/qs60mainappui.cpp
+++ b/src/gui/s60framework/qs60mainappui.cpp
@@ -315,7 +315,21 @@ TRect QS60MainAppUi::ApplicationRect() const
*/
void QS60MainAppUi::HandleScreenDeviceChangedL()
{
+ // This function triggers AppUi relayout which also generates
+ // HandleStatusPaneSizeChange(). We don't want to handle
+ // status pane resizes at this point because it causes
+ // Qt window resize and thus EGL surface resize in the middle of
+ // incomplete layout process causing unnecessary overhead.
+ // To prevent status pane resize handling while layout is still
+ // in progress, we guard relayouting with handleStatusPaneResizeNotifications
+ // flag. QSymbianControl checks this flag before doing Qt window
+ // resize due to status pane change.
+ // Eventually when layout is ready, Symbian framework calls
+ // HandleResourceChangeL(KEikDynamicLayoutVariantSwitch) which triggers
+ // resize to Qt window and to its EGL surface.
+ S60->handleStatusPaneResizeNotifications = false;
QS60MainAppUiBase::HandleScreenDeviceChangedL();
+ S60->handleStatusPaneResizeNotifications = true;
}
/*!