aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickevents.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2016-08-26 08:50:13 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2016-08-26 13:06:55 +0000
commitaac7d771a6be0ea15c521e271f4b1437fb0b6077 (patch)
tree66ca44b4f47c3752d282871a7879e64a4cf126af /src/quick/items/qquickevents.cpp
parent124181973f586a67990c9a68e25a3642623b998a (diff)
QQuickEventPoint: guard setPointerHandlerGrabber and setItemGrabber
If they get called too often, ensure that m_sceneGrabPos isn't getting reset each time. Change-Id: Ia280dca5a2e39b3a641f9a0b76e5a588ebcdc99c Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Diffstat (limited to 'src/quick/items/qquickevents.cpp')
-rw-r--r--src/quick/items/qquickevents.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index d0a32929f1..45e2fd3e73 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -549,10 +549,12 @@ QQuickItem *QQuickEventPoint::itemGrabber() const
void QQuickEventPoint::setItemGrabber(QQuickItem *grabber)
{
- qCDebug(lcPointerHandlerDispatch) << this << grabber;
- m_grabber = QPointer<QObject>(grabber);
- m_grabberIsHandler = false;
- m_sceneGrabPos = m_scenePos;
+ if (grabber != m_grabber.data()) {
+ qCDebug(lcPointerHandlerDispatch) << this << grabber;
+ m_grabber = QPointer<QObject>(grabber);
+ m_grabberIsHandler = false;
+ m_sceneGrabPos = m_scenePos;
+ }
}
QQuickPointerHandler *QQuickEventPoint::pointerHandlerGrabber() const
@@ -562,10 +564,12 @@ QQuickPointerHandler *QQuickEventPoint::pointerHandlerGrabber() const
void QQuickEventPoint::setPointerHandlerGrabber(QQuickPointerHandler *grabber)
{
- qCDebug(lcPointerHandlerDispatch) << this << grabber;
- m_grabber = QPointer<QObject>(grabber);
- m_grabberIsHandler = true;
- m_sceneGrabPos = m_scenePos;
+ if (grabber != m_grabber.data()) {
+ qCDebug(lcPointerHandlerDispatch) << this << grabber;
+ m_grabber = QPointer<QObject>(grabber);
+ m_grabberIsHandler = true;
+ m_sceneGrabPos = m_scenePos;
+ }
}
void QQuickEventPoint::setAccepted(bool accepted)