diff options
author | Jani Hautakangas <jani.hautakangas@nokia.com> | 2011-06-16 08:06:36 (GMT) |
---|---|---|
committer | Jani Hautakangas <jani.hautakangas@nokia.com> | 2011-06-17 06:57:55 (GMT) |
commit | f1d0c5bbd4a33bb0f6398915d11dc93dc659ecf6 (patch) | |
tree | 661fa5d86b3b48688da3e85f6fc50d028fd298e0 /src/gui/s60framework | |
parent | be681e71510de948dfc32a647ecef5def6c01118 (diff) | |
download | Qt-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.cpp | 14 |
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; } /*! |