diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2016-09-30 22:47:34 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-09-30 21:02:13 +0000 |
commit | e95dc3b4853c1736aef0ef2cc5248ec0aa46e3ff (patch) | |
tree | eaea0d060b943cfa429737e92cb4c9ba9e238c2a /src | |
parent | 38e876032834ab6d02b94a798fe2866a79757719 (diff) |
Cancel exit transition when the same tooltip is shown again
Task-number: QTBUG-54206
Task-number: QTBUG-54532
Change-Id: I7e4d993e3b1e30d7d7956629604f948dd1c85e32
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktooltip.cpp | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index a3d68266..e4e9cc11 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -770,6 +770,9 @@ QQuickPopupTransitionManager::QQuickPopupTransitionManager(QQuickPopupPrivate *p void QQuickPopupTransitionManager::transitionEnter() { + if (popup->transitionState == QQuickPopupPrivate::ExitTransition) + cancel(); + if (!popup->prepareEnterTransition()) return; @@ -829,7 +832,7 @@ QQuickPopup::~QQuickPopup() void QQuickPopup::open() { Q_D(QQuickPopup); - if (d->visible) + if (d->visible && d->transitionState != QQuickPopupPrivate::ExitTransition) return; if (d->complete) @@ -1767,7 +1770,7 @@ bool QQuickPopup::isVisible() const void QQuickPopup::setVisible(bool visible) { Q_D(QQuickPopup); - if (d->visible == visible) + if (d->visible == visible && d->transitionState != QQuickPopupPrivate::ExitTransition) return; d->visible = visible; diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp index 6b025fe5..b793ada5 100644 --- a/src/quicktemplates2/qquicktooltip.cpp +++ b/src/quicktemplates2/qquicktooltip.cpp @@ -256,7 +256,7 @@ QQuickToolTipAttached *QQuickToolTip::qmlAttachedProperties(QObject *object) void QQuickToolTip::open() { Q_D(QQuickToolTip); - if (d->delay > 0) + if (!d->visible && d->delay > 0) d->startDelay(); else QQuickPopup::open(); |