@@ -97,6 +97,14 @@ Showable {
9797 MathLocal.clamp((indicators.height - handle.height - hintValue) /
9898 (lockThreshold - hintValue), 0, 1);
9999
100+ /*
101+ Vertical velocity check. Don't change the indicator if we're moving too quickly.
102+ */
103+ var verticalVelocity = Math.abs(yVelocityCalculator.calculate());
104+ if (verticalVelocity >= 0.3 && indicatorRow.currentItem!=null) {
105+ return;
106+ }
107+
100108 /*
101109 Percentage of an indicator icon's width the user's press can stray horizontally from the
102110 focused icon before we change focus to another icon. E.g. a value of 0.5 means you must
@@ -282,6 +290,9 @@ Showable {
282290 var buffer = dragHandle.dragging ? true : false;
283291 indicators.calculateCurrentItem(dragHandle.touchX, buffer);
284292 }
293+ onTouchSceneYChanged: {
294+ yVelocityCalculator.trackedPosition = dragHandle.touchSceneY;
295+ }
285296 }
286297
287298 DragHandle {
@@ -325,6 +336,10 @@ Showable {
325336 }
326337 }
327338
339+ AxisVelocityCalculator {
340+ id: yVelocityCalculator
341+ }
342+
328343 states: [
329344 State {
330345 name: "initial"