aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickwidgets
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-12-05 11:28:47 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-12-07 14:51:47 +0000
commit9d2a929fa4dd0beae3c30fb08d4ed4df7368ea4f (patch)
treeb302e6697f86d9a8fc3d9a820f233dffea383792 /tests/auto/quickwidgets
parentb55b3692f6cc57f8a7ef972388504b5133331ceb (diff)
tst_qquickwidget::enterLeave(): Handle varying screen setups
Take the available screen geometry and window borders into account when positioning windows and moving cursors. Task-number: QTBUG-64397 Fixes: QTBUG-72305 Change-Id: Ia2b35a0deb144ab7194f7658d599888ff9d4a706 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto/quickwidgets')
-rw-r--r--tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
index e523274d0a..24e55e3b3a 100644
--- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
+++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
@@ -35,6 +35,7 @@
#include <QtQuick/qquickitem.h>
#include "../../shared/util.h"
#include <QtGui/QWindow>
+#include <QtGui/QScreen>
#include <QtGui/QImage>
#include <QtCore/QDebug>
#include <QtQml/qqmlengine.h>
@@ -144,6 +145,7 @@ private slots:
private:
QTouchDevice *device = QTest::createTouchDevice();
+ const QRect m_availableGeometry = QGuiApplication::primaryScreen()->availableGeometry();
};
tst_qquickwidget::tst_qquickwidget()
@@ -199,7 +201,7 @@ void tst_qquickwidget::changeGeometry()
void tst_qquickwidget::resizemodeitem()
{
QWidget window;
- window.setGeometry(0, 0, 400, 400);
+ window.setGeometry(m_availableGeometry.left(), m_availableGeometry.top(), 400, 400);
QScopedPointer<QQuickWidget> view(new QQuickWidget);
view->setParent(&window);
@@ -533,18 +535,20 @@ void tst_qquickwidget::enterLeave()
view.setSource(testFileUrl("enterleave.qml"));
// Ensure it is not inside the window first
- QCursor::setPos(QPoint(50, 50));
- QTRY_VERIFY(QCursor::pos() == QPoint(50, 50));
+ const auto outside = m_availableGeometry.topLeft() + QPoint(50, 50);
+ QCursor::setPos(outside);
+ QTRY_VERIFY(QCursor::pos() == outside);
- view.move(100, 100);
+ view.move(m_availableGeometry.topLeft() + QPoint(100, 100));
view.show();
QVERIFY(QTest::qWaitForWindowExposed(&view, 5000));
QQuickItem *rootItem = view.rootObject();
QVERIFY(rootItem);
+ const QPoint frameOffset = view.geometry().topLeft() - view.frameGeometry().topLeft();
QTRY_VERIFY(!rootItem->property("hasMouse").toBool());
// Check the enter
- QCursor::setPos(view.pos() + QPoint(50, 50));
+ QCursor::setPos(view.pos() + QPoint(50, 50) + frameOffset);
QTRY_VERIFY(rootItem->property("hasMouse").toBool());
// Now check the leave
QCursor::setPos(view.pos() - QPoint(50, 50));