@@ -479,16 +479,21 @@ Item {
479 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
479 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
481 // Doing longpress
481 // Doing longpress
482− var currentMouseX = draggedItem.width / 2
482+ var mouseOnLauncher = launcher.mapFromItem(draggedItem, draggedItem.width / 2, draggedItem.height / 2)
483− var currentMouseY = draggedItem.height / 2
483+ var currentMouseX = mouseOnLauncher.x
484+ var currentMouseY = mouseOnLauncher.y
485+ var newMouseX = currentMouseX
486+ var newMouseY = currentMouseY
484− mousePress(draggedItem, currentMouseX, currentMouseY)
487+ mousePress(launcher, currentMouseX, currentMouseY)
485 // DraggedItem needs to hide and fakeDragItem become visible
488 // DraggedItem needs to hide and fakeDragItem become visible
486 tryCompare(draggedItem, "itemOpacity", 0)
489 tryCompare(draggedItem, "itemOpacity", 0)
487 tryCompare(fakeDragItem, "visible", true)
490 tryCompare(fakeDragItem, "visible", true)
489 // Dragging a bit (> 1.5 gu)
492 // Dragging a bit (> 1.5 gu)
490− currentMouseX -= units.gu(2)
493+ newMouseX -= units.gu(2)
491− mouseMove(draggedItem, currentMouseX, currentMouseY)
494+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
495+ currentMouseX = newMouseX
492 // Other items need to expand and become 0.6 opaque
497 // Other items need to expand and become 0.6 opaque
493 tryCompare(item0, "angle", 0)
498 tryCompare(item0, "angle", 0)
494 tryCompare(item0, "itemOpacity", 0.6)
499 tryCompare(item0, "itemOpacity", 0.6)
@@ -496,18 +501,21 @@ Item {
496 if (data.fullDrag) {
501 if (data.fullDrag) {
497 // Dragging a bit more
502 // Dragging a bit more
498 if (data.orientation == ListView.Horizontal) {
503 if (data.orientation == ListView.Horizontal) {
499− currentMouseX -= units.gu(15)
504+ newMouseX += units.gu(15)
500− mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
505+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
506+ currentMouseX = newMouseX
502 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
508 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
503 tryCompare(draggedItem, "height", units.gu(1))
509 tryCompare(draggedItem, "height", units.gu(1))
505 // Dragging downwards. Item needs to move in the model
511 // Dragging downwards. Item needs to move in the model
506− currentMouseY -= initialItemHeight * 1.5
512+ newMouseY -= initialItemHeight * 1.5
507− mouseMove(draggedItem, currentMouseX, currentMouseY)
513+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
514+ currentMouseY = newMouseY
508 } else if (data.orientation == ListView.Vertical) {
515 } else if (data.orientation == ListView.Vertical) {
509− currentMouseY -= initialItemHeight * 1.5
516+ newMouseY -= initialItemHeight * 1.5
510− mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
517+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
518+ currentMouseY = newMouseY
512 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
520 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
513 tryCompare(draggedItem, "height", units.gu(1))
521 tryCompare(draggedItem, "height", units.gu(1))
@@ -519,7 +527,7 @@ Item {
521 // Releasing and checking if initial values are restored
529 // Releasing and checking if initial values are restored
522− mouseRelease(draggedItem)
530+ mouseRelease(launcher)
523 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
531 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
524 tryCompare(draggedItem, "itemOpacity", 1)
532 tryCompare(draggedItem, "itemOpacity", 1)
525 tryCompare(fakeDragItem, "visible", false)
533 tryCompare(fakeDragItem, "visible", false)