@@ -33,6 +33,7 @@ Showable {
33 readonly property int lockThreshold: openedHeight / 2
33 readonly property int lockThreshold: openedHeight / 2
34 property bool fullyOpened: height == openedHeight
34 property bool fullyOpened: height == openedHeight
35 property bool partiallyOpened: height > panelHeight && !fullyOpened
35 property bool partiallyOpened: height > panelHeight && !fullyOpened
36+ property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
37 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
38 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
38 // use its own values. Need to ask design about this.
39 // use its own values. Need to ask design about this.
@@ -100,8 +101,8 @@ Showable {
101 Vertical velocity check. Don't change the indicator if we're moving too quickly.
102 Vertical velocity check. Don't change the indicator if we're moving too quickly.
103− var verticalVelocity = Math.abs(yVelocityCalculator.calculate());
104+ var verticalSpeed = Math.abs(yVelocityCalculator.calculate());
104− if (verticalVelocity >= 0.05 && indicatorRow.currentItem!=null) {
105+ if (verticalSpeed >= 0.05 && indicatorRow.currentItem!=null) {
@@ -282,16 +283,15 @@ Showable {
285− property var dragHandle: null
286+ property var activeDragHandle: showDragHandle.dragging ? showDragHandle : hideDragHandle.dragging ? hideDragHandle : null
286 // connections to the active drag handle
287 // connections to the active drag handle
287 Connections {
288 Connections {
288− target: dragHandle
289+ target: activeDragHandle
289 onTouchXChanged: {
290 onTouchXChanged: {
290− var buffer = dragHandle.dragging ? true : false;
291− indicators.calculateCurrentItem(dragHandle.touchX, buffer);
291+ indicators.calculateCurrentItem(activeDragHandle.touchX, true);
293 onTouchSceneYChanged: {
293 onTouchSceneYChanged: {
294− yVelocityCalculator.trackedPosition = dragHandle.touchSceneY;
294+ yVelocityCalculator.trackedPosition = activeDragHandle.touchSceneY;
@@ -316,9 +316,6 @@ Showable {
316 menuContent.activateContent();
316 menuContent.activateContent();
319− onDraggingChanged: {
320− dragHandle = dragging ? showDragHandle : null;
323 DragHandle {
320 DragHandle {
324 id: hideDragHandle
321 id: hideDragHandle
@@ -330,10 +327,6 @@ Showable {
330 stretch: true
327 stretch: true
331 maxTotalDragDistance: openedHeight - panelHeight
328 maxTotalDragDistance: openedHeight - panelHeight
332 distanceThreshold: 0
329 distanceThreshold: 0
334− onDraggingChanged: {
335− dragHandle = dragging ? hideDragHandle : null;
339 AxisVelocityCalculator {
332 AxisVelocityCalculator {
@@ -352,8 +345,8 @@ Showable {
353 StateChangeScript {
346 StateChangeScript {
354 script: {
347 script: {
355− if (dragHandle) {
348+ if (activeDragHandle) {
356− calculateCurrentItem(dragHandle.touchX, false);
349+ calculateCurrentItem(activeDragHandle.touchX, false);