diff options
Diffstat (limited to 'src/quick/handlers/qquickpointerhandler.cpp')
| -rw-r--r-- | src/quick/handlers/qquickpointerhandler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp index 96f87d6943..a851334b0e 100644 --- a/src/quick/handlers/qquickpointerhandler.cpp +++ b/src/quick/handlers/qquickpointerhandler.cpp @@ -597,15 +597,18 @@ QQuickItem *QQuickPointerHandler::parentItem() const void QQuickPointerHandler::setParentItem(QQuickItem *p) { + Q_D(QQuickPointerHandler); if (QObject::parent() == p) return; qCDebug(lcHandlerParent) << "reparenting handler" << this << ":" << parent() << "->" << p; - if (auto *oldParent = static_cast<QQuickItem *>(QObject::parent())) + auto *oldParent = static_cast<QQuickItem *>(QObject::parent()); + if (oldParent) QQuickItemPrivate::get(oldParent)->removePointerHandler(this); setParent(p); if (p) QQuickItemPrivate::get(p)->addPointerHandler(this); + d->onParentChanged(oldParent, p); emit parentChanged(); } |
