@@ -48,7 +48,7 @@ Item {
4848 anchors.fill: parent
4949 anchors.leftMargin: -itemWidth
5050 anchors.rightMargin: -itemWidth
51− interactive: false
51+// interactive: false
5252
5353 orientation: ListView.Horizontal
5454 spacing: units.gu(1)
@@ -178,17 +178,25 @@ Item {
178178 id: mouseArea
179179 anchors.fill: parent
180180 hoverEnabled: true
181− preventStealing: true
181+ propagateComposedEvents: true
182182 anchors.leftMargin: listView.leftMargin
183183 anchors.rightMargin: listView.rightMargin
184184
185185 property int draggedIndex: -1
186186
187+ property int startX: 0
188+ property int startY: 0
189+
187190 onMouseXChanged: {
188− var progress = Math.max(0, Math.min(1, (mouseX - listView.foldingAreaWidth) / (width - listView.foldingAreaWidth * 2)))
189−// var progress = mouseX / width
190− print("p:", progress)
191− listView.contentX = listView.originX + (listView.contentWidth - listView.width + listView.leftMargin + listView.rightMargin) * progress - listView.leftMargin
191+ if (!pressed || dragging) {
192+ var progress = Math.max(0, Math.min(1, (mouseX - listView.foldingAreaWidth) / (width - listView.foldingAreaWidth * 2)))
193+ listView.contentX = listView.originX + (listView.contentWidth - listView.width + listView.leftMargin + listView.rightMargin) * progress - listView.leftMargin
194+ }
195+ }
196+ onMouseYChanged: {
197+ if (Math.abs(mouseY - startY) > units.gu(3)) {
198+ drag.axis = Drag.XAndYAxis;
199+ }
192200 }
193201
194202 onReleased: {
@@ -205,6 +213,8 @@ Item {
205213 }
206214
207215 onPressed: {
216+ startX = mouseX;
217+ startY = mouseY;
208218 if (listView.model.count < 2) return;
209219
210220 var coords = mapToItem(listView.contentItem, mouseX, mouseY)
@@ -220,6 +230,7 @@ Item {
220230 fakeDragItem.Drag.hotSpot.x = mouseCoordsInItem.x
221231 fakeDragItem.Drag.hotSpot.y = mouseCoordsInItem.y
222232
233+ drag.axis = Drag.YAxis;
223234 drag.target = fakeDragItem;
224235 }
225236