@@ -131,18 +131,10 @@ void tst_DirectionalDragArea::passTime(qint64 timeSpan)
131131}
132132
133133namespace {
134−QPointF calculateInitialTouchPos(DirectionalDragArea *edgeDragArea, QQuickView *view)
134+QPointF calculateInitialTouchPos(DirectionalDragArea *edgeDragArea)
135135{
136− switch (edgeDragArea->direction()) {
137− case Direction::Upwards:
138− return QPointF(view->width()/2.0f, view->height() - (edgeDragArea->height()/2.0f));
139− case Direction::Downwards:
140− return QPointF(view->width()/2.0f, edgeDragArea->height()/2.0f);
141− case Direction::Leftwards:
142− return QPointF(view->width() - (edgeDragArea->width()/2.0f), view->height()/2.0f);
143− default: // Direction::Rightwards:
144− return QPointF(edgeDragArea->width()/2.0f, view->height()/2.0f);
145− }
136+ QPointF localCenter(edgeDragArea->width() / 2., edgeDragArea->height() / 2.);
137+ return edgeDragArea->mapToScene(localCenter);
146138}
147139
148140QPointF calculateDirectionVector(DirectionalDragArea *edgeDragArea,
@@ -193,7 +185,7 @@ void tst_DirectionalDragArea::edgeDrag()
193185
194186 QSignalSpy draggingSpy(edgeDragArea, SIGNAL(draggingChanged(bool)));
195187
196− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
188+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
197189 QPointF touchPoint = initialTouchPos;
198190
199191 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*dragDistanceFactor;
@@ -300,7 +292,7 @@ void tst_DirectionalDragArea::dragWithShortDirectionChange()
300292 edgeDragArea->setRecognitionTimer(fakeTimer);
301293 edgeDragArea->setTimeSource(fakeTimeSource);
302294
303− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
295+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
304296 QPointF touchPoint = initialTouchPos;
305297
306298 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0;
@@ -360,7 +352,7 @@ void tst_DirectionalDragArea::minSpeed()
360352
361353 edgeDragArea->setMinSpeed(minSpeed);
362354
363− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
355+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
364356 QPointF touchPoint = initialTouchPos;
365357
366358 QPointF dragDirectionVector(1.0, 0.0);
@@ -408,7 +400,7 @@ void tst_DirectionalDragArea::recognitionTimerUsage()
408400
409401 int timeStepMs = 5; // some arbitrary small value.
410402
411− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
403+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
412404 QPointF touchPoint = initialTouchPos;
413405
414406 QPointF dragDirectionVector(1.0, 0.0);
@@ -452,7 +444,7 @@ void tst_DirectionalDragArea::maxSilenceTime()
452444 // Make sure this property is not disabled
453445 edgeDragArea->setMaxSilenceTime(100);
454446
455− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
447+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
456448 QPointF touchPoint = initialTouchPos;
457449
458450 QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
@@ -620,7 +612,7 @@ void tst_DirectionalDragArea::movingDDA()
620612 edgeDragArea->setRecognitionTimer(fakeTimer);
621613 edgeDragArea->setTimeSource(fakeTimeSource);
622614
623− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
615+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
624616 QPointF touchPoint = initialTouchPos;
625617
626618 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;