@@ -200,7 +200,10 @@ Item {
200200 verify(!!panel);
201201
202202 // wait until it gets fully extended
203− tryCompare(panel, "x", 0);
203+ // a tryCompare doesn't work since
204+ // compare(-0.000005917593600024418, 0);
205+ // is true and in this case we want exactly 0 or will have pain later on
206+ tryCompareFunction( function(){ return panel.x === 0; }, true );
204207 tryCompare(launcher, "state", "visible");
205208 }
206209
@@ -479,16 +482,21 @@ Item {
479482 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
480483
481484 // Doing longpress
482− var currentMouseX = draggedItem.width / 2
483− var currentMouseY = draggedItem.height / 2
484− mousePress(draggedItem, currentMouseX, currentMouseY)
485+ var mouseOnLauncher = launcher.mapFromItem(draggedItem, draggedItem.width / 2, draggedItem.height / 2)
486+ var currentMouseX = mouseOnLauncher.x
487+ var currentMouseY = mouseOnLauncher.y
488+ var newMouseX = currentMouseX
489+ var newMouseY = currentMouseY
490+ mousePress(launcher, currentMouseX, currentMouseY)
485491 // DraggedItem needs to hide and fakeDragItem become visible
486492 tryCompare(draggedItem, "itemOpacity", 0)
487493 tryCompare(fakeDragItem, "visible", true)
488494
489495 // Dragging a bit (> 1.5 gu)
490− currentMouseX -= units.gu(2)
491− mouseMove(draggedItem, currentMouseX, currentMouseY)
496+ newMouseX -= units.gu(2)
497+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
498+ currentMouseX = newMouseX
499+
492500 // Other items need to expand and become 0.6 opaque
493501 tryCompare(item0, "angle", 0)
494502 tryCompare(item0, "itemOpacity", 0.6)
@@ -496,18 +504,21 @@ Item {
496504 if (data.fullDrag) {
497505 // Dragging a bit more
498506 if (data.orientation == ListView.Horizontal) {
499− currentMouseX -= units.gu(15)
500− mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
507+ newMouseX += units.gu(15)
508+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
509+ currentMouseX = newMouseX
501510
502511 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
503512 tryCompare(draggedItem, "height", units.gu(1))
504513
505514 // Dragging downwards. Item needs to move in the model
506− currentMouseY -= initialItemHeight * 1.5
507− mouseMove(draggedItem, currentMouseX, currentMouseY)
515+ newMouseY -= initialItemHeight * 1.5
516+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
517+ currentMouseY = newMouseY
508518 } else if (data.orientation == ListView.Vertical) {
509− currentMouseY -= initialItemHeight * 1.5
510− mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
519+ newMouseY -= initialItemHeight * 1.5
520+ mouseFlick(launcher, currentMouseX, currentMouseY, newMouseX, newMouseY, false, false, 100)
521+ currentMouseY = newMouseY
511522
512523 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
513524 tryCompare(draggedItem, "height", units.gu(1))
@@ -519,7 +530,7 @@ Item {
519530 }
520531
521532 // Releasing and checking if initial values are restored
522− mouseRelease(draggedItem)
533+ mouseRelease(launcher)
523534 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
524535 tryCompare(draggedItem, "itemOpacity", 1)
525536 tryCompare(fakeDragItem, "visible", false)