// with only the distance past bounds exposed : property bool needRefresh: false property bool resting: verticalDistancePastBounds === 0 property bool threshold: 50 signal refresh onVerticalDistancePastBoundsChanged: { if (verticalDistancePastBounds !== 0) needRefresh = verticalDistancePastBounds >= threshold; } onRestingChanged: { if (!resting && needRefresh) refresh(); needRefresh = false; } // with a released signal : property bool resting: verticalDistancePastBounds === 0 property bool threshold: 50 signal refresh //flickable should have a released signal or overshootReleased or whatever onReleased: if (verticalDistancePastBounds >= threshold) refresh() // pre-requisite : the distance past bounds should be reseted after the signal is emitted, not before // this could similarly be done with a lastVerticalDistancePastBounds property that is not reseted on mouse release // onRestingChanged: if (lastVerticalDistancePastBounds >= threshold) refresh()