Search
SailfishOS Open Build Service
>
Projects
>
home:kaltsi
:
tnhlbug
>
qt
> 0020-Do-not-emit-origin-X-Y-Changed-unnecessarily.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 0020-Do-not-emit-origin-X-Y-Changed-unnecessarily.patch of Package qt
From 7ab8e1fb8a011297417e952512e7ea5fed7fe63e Mon Sep 17 00:00:00 2001 From: Matt Vogt <matthew.vogt@jollamobile.com> Date: Fri, 30 Nov 2012 14:16:36 +1000 Subject: [PATCH 20/29] Do not emit origin{X|Y}Changed unnecessarily These signals should be emitted only when the relevant value has actually changed. --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 12 ++++++++++-- src/declarative/graphicsitems/qdeclarativeflickable_p_p.h | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 9b819ca..b39f06f 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -419,12 +419,20 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd() if (vData.extentsChanged) { vData.extentsChanged = false; - emit q->originYChanged(); + qreal newOrigin = q->originY(); + if (newOrigin != vData.origin) { + vData.origin = newOrigin; + emit q->originYChanged(); + } } if (hData.extentsChanged) { hData.extentsChanged = false; - emit q->originXChanged(); + qreal newOrigin = q->originX(); + if (newOrigin != hData.origin) { + hData.origin = newOrigin; + emit q->originXChanged(); + } } if (atBoundaryChange) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h index 3e5890e..781a964 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h @@ -98,7 +98,7 @@ public: struct AxisData { AxisData(QDeclarativeFlickablePrivate *fp, void (QDeclarativeFlickablePrivate::*func)(qreal)) - : move(fp, func), viewSize(-1), startMargin(0), endMargin(0) + : move(fp, func), viewSize(-1), startMargin(0), endMargin(0), origin(0) , smoothVelocity(fp), atEnd(false), atBeginning(true) , fixingUp(false), inOvershoot(false), moving(false), flicking(false) , dragging(false), extentsChanged(false) @@ -131,6 +131,7 @@ public: qreal flickTarget; qreal startMargin; qreal endMargin; + qreal origin; QDeclarativeFlickablePrivate::Velocity smoothVelocity; QPODVector<qreal,10> velocityBuffer; bool atEnd : 1; -- 1.7.10.3