diff options
-rw-r--r-- | src/corelib/widgets/mapplicationwindow.cpp | 11 | ||||
-rw-r--r-- | src/corelib/widgets/mapplicationwindow_p.h | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/corelib/widgets/mapplicationwindow.cpp b/src/corelib/widgets/mapplicationwindow.cpp index 178e6051..d1b1a95d 100644 --- a/src/corelib/widgets/mapplicationwindow.cpp +++ b/src/corelib/widgets/mapplicationwindow.cpp @@ -873,11 +873,12 @@ void MApplicationWindowPrivate::applicationPageAppearEvent(MSceneWindowEvent *ev connectPage(pageFromEvent); _q_updatePageExposedContentRect(); - // very fast user can switch page before animation finishes - navigationBarAnimation->stop(); - - if (event->animatedTransition()) + if (event->animatedTransition() && + (toolBar->viewType() == MToolBar::defaultType || + previousToolBarViewType == MToolBar::defaultType)) + { navigationBarAnimation->start(); + } #ifdef Q_WS_X11 if (pageFromEvent && isChained && sceneManager) { @@ -892,6 +893,8 @@ void MApplicationWindowPrivate::applicationPageAppearEvent(MSceneWindowEvent *ev void MApplicationWindowPrivate::applicationPageDisappearEvent(MSceneWindowEvent *event) { + previousToolBarViewType = toolBar->viewType(); + MApplicationPage *pageFromEvent = static_cast<MApplicationPage *>(event->sceneWindow()); // Page is going away. Let's disconnect it if it's the current page. diff --git a/src/corelib/widgets/mapplicationwindow_p.h b/src/corelib/widgets/mapplicationwindow_p.h index 106a5b63..3a979146 100644 --- a/src/corelib/widgets/mapplicationwindow_p.h +++ b/src/corelib/widgets/mapplicationwindow_p.h @@ -88,6 +88,7 @@ public: bool navigationBarPressed; MContentFadeAndSlideAnimation* navigationBarAnimation; + QString previousToolBarViewType; void manageActions(); void distributeAction(QAction *action, QAction *before); |