2020-08-02 22:22:19 +00:00
|
|
|
/*
|
|
|
|
KWin - the KDE window manager
|
|
|
|
This file is part of the KDE project.
|
2016-02-17 11:42:12 +00:00
|
|
|
|
2020-08-02 22:22:19 +00:00
|
|
|
SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
|
2016-02-17 11:42:12 +00:00
|
|
|
|
2020-08-02 22:22:19 +00:00
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
*/
|
2016-02-17 11:42:12 +00:00
|
|
|
#include "kwin_wayland_test.h"
|
2022-03-23 10:13:38 +00:00
|
|
|
|
2022-08-29 07:55:49 +00:00
|
|
|
#include "core/platform.h"
|
2016-02-17 11:42:12 +00:00
|
|
|
#include "cursor.h"
|
|
|
|
#include "wayland_server.h"
|
|
|
|
|
|
|
|
namespace KWin
|
|
|
|
{
|
|
|
|
|
|
|
|
static const QString s_socketName = QStringLiteral("wayland_test_kwin_platform_cursor-0");
|
|
|
|
|
|
|
|
class PlatformCursorTest : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
private Q_SLOTS:
|
|
|
|
void initTestCase();
|
|
|
|
void testPos();
|
|
|
|
};
|
|
|
|
|
|
|
|
void PlatformCursorTest::initTestCase()
|
|
|
|
{
|
2020-07-07 09:32:29 +00:00
|
|
|
QSignalSpy applicationStartedSpy(kwinApp(), &Application::started);
|
2016-04-07 06:28:35 +00:00
|
|
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
2020-12-09 13:06:15 +00:00
|
|
|
QVERIFY(waylandServer()->init(s_socketName));
|
2022-09-16 08:42:55 +00:00
|
|
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
|
|
|
2016-02-17 11:42:12 +00:00
|
|
|
kwinApp()->start();
|
2020-07-07 09:32:29 +00:00
|
|
|
QVERIFY(applicationStartedSpy.wait());
|
2016-02-17 11:42:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void PlatformCursorTest::testPos()
|
|
|
|
{
|
|
|
|
// this test verifies that the PlatformCursor of the QPA plugin forwards ::pos and ::setPos correctly
|
|
|
|
// that is QCursor should work just like KWin::Cursor
|
|
|
|
|
|
|
|
// cursor should be centered on screen
|
2020-04-02 16:18:01 +00:00
|
|
|
QCOMPARE(Cursors::self()->mouse()->pos(), QPoint(639, 511));
|
|
|
|
QCOMPARE(Cursors::self()->mouse()->pos(), QPoint(639, 511));
|
2016-02-17 11:42:12 +00:00
|
|
|
|
|
|
|
// let's set the pos through QCursor API
|
|
|
|
QCursor::setPos(QPoint(10, 10));
|
2020-04-02 16:18:01 +00:00
|
|
|
QCOMPARE(Cursors::self()->mouse()->pos(), QPoint(10, 10));
|
2016-02-17 11:42:12 +00:00
|
|
|
QCOMPARE(QCursor::pos(), QPoint(10, 10));
|
|
|
|
|
|
|
|
// and let's set the pos through Cursor API
|
|
|
|
QCursor::setPos(QPoint(20, 20));
|
2020-04-02 16:18:01 +00:00
|
|
|
QCOMPARE(Cursors::self()->mouse()->pos(), QPoint(20, 20));
|
2016-02-17 11:42:12 +00:00
|
|
|
QCOMPARE(QCursor::pos(), QPoint(20, 20));
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
WAYLANDTEST_MAIN(KWin::PlatformCursorTest)
|
|
|
|
#include "platformcursor.moc"
|