diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-06-15 14:10:23 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-06-15 20:32:34 +0000 |
commit | e7b598072de53ccda1ea9caf6bb5a03401cfde33 (patch) | |
tree | 7bbd76e38ce56da5903046fdee087a4ec3b89914 | |
parent | 93b593e9aec8260864d182e8a154f0948d609652 (diff) |
QQuickPopup: finalizeExitTransition before deleting internals
Otherwise they get re-created and leak.
Change-Id: Ib6af70bed196d3b32faa1df7f40063a38e321987
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 5f3eec895639aeadc187a641a293895f52b51147)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 44d0d8f4..ebb85c12 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -875,16 +875,17 @@ QQuickPopup::~QQuickPopup() Q_D(QQuickPopup); setParentItem(nullptr); d->popupItem->ungrabShortcut(); - delete d->popupItem; - d->popupItem = nullptr; - delete d->positioner; - d->positioner = nullptr; // If the popup is destroyed before the exit transition finishes, // the necessary cleanup (removing modal dimmers that block mouse events, // emitting closed signal, etc.) won't happen. That's why we do it manually here. if (d->transitionState == QQuickPopupPrivate::ExitTransition && d->transitionManager.isRunning()) d->finalizeExitTransition(); + + delete d->popupItem; + d->popupItem = nullptr; + delete d->positioner; + d->positioner = nullptr; } /*! |