aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickpopup.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-18 16:50:27 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-19 14:26:36 +0000
commit62646977131f0bd591d9a0dc077f44386f10ad17 (patch)
tree3b3e4a36b81342316c78e42842e86bfdc60cbc6b /src/quicktemplates2/qquickpopup.cpp
parent02d1126499c2efd58fdcdde970d0713940230c58 (diff)
QQuickPopup: do not attempt to execute transitions without a window
A parentless/windowless popup item is not associated to a QML engine. Accessing transitions calls qmlExecuteDeferred(), which leads to a crash. This can happen in auto tests with the shared tooltip during destruction. Change-Id: I9a258b2df6b87fce7833e358f17b1910934212c2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickpopup.cpp')
-rw-r--r--src/quicktemplates2/qquickpopup.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index c155716c..b4022247 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -724,7 +724,10 @@ void QQuickPopupTransitionManager::transitionEnter()
state = Enter;
popup->prepareEnterTransition();
- transition(popup->enterActions, popup->enter, popup->q_func());
+ if (popup->window)
+ transition(popup->enterActions, popup->enter, popup->q_func());
+ else
+ finished();
}
void QQuickPopupTransitionManager::transitionExit()
@@ -734,7 +737,10 @@ void QQuickPopupTransitionManager::transitionExit()
state = Exit;
popup->prepareExitTransition();
- transition(popup->exitActions, popup->exit, popup->q_func());
+ if (popup->window)
+ transition(popup->exitActions, popup->exit, popup->q_func());
+ else
+ finished();
}
void QQuickPopupTransitionManager::finished()