[platforms/virtual] Create output devices
Summary: Create output devices in virtual backend. For that the setVirtualOutputs call can only come after the Wayland server has been initiliazied such that the display exists to create the output and output device interfaces. Tests have been adjusted for that. Test Plan: ``` 98% tests passed, 3 tests failed out of 148 Total Test time (real) = 362.97 sec The following tests FAILED: 33 - kwin-testInternalWindow (Failed) 39 - kwin-testPointerInput (Failed) 101 - kwin-testMoveResize (Failed) ``` Failing of these tests looks unrelated to the change. Reviewers: #kwin Subscribers: kwin Tags: #kwin Maniphest Tasks: T11459 Differential Revision: https://phabricator.kde.org/D23477
This commit is contained in:
parent
f013a4369c
commit
cd6b69a4d2
33 changed files with 55 additions and 40 deletions
|
@ -64,8 +64,8 @@ void ActivitiesTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->setUseKActivities(true);
|
kwinApp()->setUseKActivities(true);
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
|
|
|
@ -49,8 +49,8 @@ void ColorCorrectNightColorTest::initTestCase()
|
||||||
{
|
{
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,8 @@ void DebugConsoleTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -138,8 +138,8 @@ void DecorationInputTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// change some options
|
// change some options
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
|
|
@ -58,8 +58,8 @@ void X11DesktopWindowTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -59,8 +59,8 @@ void DontCrashAuroraeDestroyDecoTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
config->group("org.kde.kdecoration2").writeEntry("library", "org.kde.kwin.aurorae");
|
config->group("org.kde.kdecoration2").writeEntry("library", "org.kde.kwin.aurorae");
|
||||||
|
|
|
@ -55,8 +55,8 @@ void DontCrashEmptyDecorationTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// this test needs to enforce OpenGL compositing to get into the crashy condition
|
// this test needs to enforce OpenGL compositing to get into the crashy condition
|
||||||
qputenv("KWIN_COMPOSE", QByteArrayLiteral("O2"));
|
qputenv("KWIN_COMPOSE", QByteArrayLiteral("O2"));
|
||||||
|
|
|
@ -62,8 +62,8 @@ void DontCrashNoBorder::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
config->group("org.kde.kdecoration2").writeEntry("NoPlugin", true);
|
config->group("org.kde.kdecoration2").writeEntry("NoPlugin", true);
|
||||||
|
|
|
@ -64,8 +64,8 @@ void DontCrashReinitializeCompositorTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
auto config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
auto config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
KConfigGroup plugins(config, QStringLiteral("Plugins"));
|
KConfigGroup plugins(config, QStringLiteral("Plugins"));
|
||||||
|
|
|
@ -62,8 +62,8 @@ void TestDontCrashUseractionsMenu::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// force style to breeze as that's the one which triggered the crash
|
// force style to breeze as that's the one which triggered the crash
|
||||||
QVERIFY(kwinApp()->setStyle(QStringLiteral("breeze")));
|
QVERIFY(kwinApp()->setStyle(QStringLiteral("breeze")));
|
||||||
|
|
|
@ -68,8 +68,8 @@ void InputStackingOrderTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -189,8 +189,8 @@ void InternalWindowTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
|
|
|
@ -189,8 +189,8 @@ void LockScreenTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
qputenv("KWIN_COMPOSE", QByteArrayLiteral("O2"));
|
qputenv("KWIN_COMPOSE", QByteArrayLiteral("O2"));
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
|
|
|
@ -69,8 +69,8 @@ void TestMaximized::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
||||||
|
|
||||||
|
|
|
@ -90,8 +90,8 @@ void TestPlacement::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
||||||
|
|
||||||
|
|
|
@ -75,8 +75,8 @@ void PlasmaWindowTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -75,8 +75,8 @@ void TestPointerConstraints::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// set custom config which disables the OnScreenNotification
|
// set custom config which disables the OnScreenNotification
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
|
|
@ -147,8 +147,8 @@ void PointerInputTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
|
||||||
|
|
||||||
|
|
|
@ -102,8 +102,8 @@ void QuickTilingTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// set custom config which disables the Outline
|
// set custom config which disables the Outline
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
|
|
@ -57,8 +57,8 @@ void ScreenEdgeClientShowTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// set custom config which disable touch edge
|
// set custom config which disable touch edge
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
|
|
@ -54,8 +54,8 @@ void ShadeTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -230,8 +230,8 @@ void TestShellClientRules::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -133,8 +133,8 @@ void TestShellClient::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -74,8 +74,8 @@ void StrutsTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
// set custom config which disables the Outline
|
// set custom config which disables the Outline
|
||||||
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
|
|
@ -63,8 +63,8 @@ void TouchInputTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -79,8 +79,8 @@ void TransientPlacementTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -58,8 +58,8 @@ void WindowRuleTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -69,8 +69,8 @@ void TestWindowSelection::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
qputenv("XKB_DEFAULT_RULES", "evdev");
|
qputenv("XKB_DEFAULT_RULES", "evdev");
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
|
|
|
@ -57,8 +57,8 @@ void XWaylandInputTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -58,10 +58,10 @@ void XwaylandSelectionsTest::initTestCase()
|
||||||
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
|
||||||
QVERIFY(workspaceCreatedSpy.isValid());
|
QVERIFY(workspaceCreatedSpy.isValid());
|
||||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
|
||||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
|
||||||
// QSignalSpy clipboardSyncDevicedCreated{waylandServer(), &WaylandServer::xclipboardSyncDataDeviceCreated};
|
// QSignalSpy clipboardSyncDevicedCreated{waylandServer(), &WaylandServer::xclipboardSyncDataDeviceCreated};
|
||||||
// QVERIFY(clipboardSyncDevicedCreated.isValid());
|
// QVERIFY(clipboardSyncDevicedCreated.isValid());
|
||||||
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
|
||||||
|
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2));
|
||||||
|
|
||||||
kwinApp()->start();
|
kwinApp()->start();
|
||||||
QVERIFY(workspaceCreatedSpy.wait());
|
QVERIFY(workspaceCreatedSpy.wait());
|
||||||
|
|
|
@ -49,6 +49,7 @@ VirtualBackend::VirtualBackend(QObject *parent)
|
||||||
}
|
}
|
||||||
setSupportsPointerWarping(true);
|
setSupportsPointerWarping(true);
|
||||||
setSupportsGammaControl(true);
|
setSupportsGammaControl(true);
|
||||||
|
handleOutputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
VirtualBackend::~VirtualBackend()
|
VirtualBackend::~VirtualBackend()
|
||||||
|
@ -65,12 +66,11 @@ void VirtualBackend::init()
|
||||||
*/
|
*/
|
||||||
if (!m_outputs.size()) {
|
if (!m_outputs.size()) {
|
||||||
VirtualOutput *dummyOutput = new VirtualOutput(this);
|
VirtualOutput *dummyOutput = new VirtualOutput(this);
|
||||||
dummyOutput->setGeometry(QRect(QPoint(0, 0), initialWindowSize()));
|
dummyOutput->init(QPoint(0, 0), initialWindowSize());
|
||||||
m_outputs << dummyOutput ;
|
m_outputs << dummyOutput ;
|
||||||
m_enabledOutputs << dummyOutput ;
|
m_enabledOutputs << dummyOutput ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setSoftWareCursor(true);
|
setSoftWareCursor(true);
|
||||||
setReady(true);
|
setReady(true);
|
||||||
waylandServer()->seat()->setHasPointer(true);
|
waylandServer()->seat()->setHasPointer(true);
|
||||||
|
@ -126,15 +126,16 @@ void VirtualBackend::setVirtualOutputs(int count, QVector<QRect> geometries, QVe
|
||||||
int sumWidth = 0;
|
int sumWidth = 0;
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
VirtualOutput *vo = new VirtualOutput(this);
|
VirtualOutput *vo = new VirtualOutput(this);
|
||||||
|
if (geometries.size()) {
|
||||||
|
const QRect geo = geometries.at(i);
|
||||||
|
vo->init(geo.topLeft(), geo.size());
|
||||||
|
} else {
|
||||||
|
vo->init(QPoint(sumWidth, 0), initialWindowSize());
|
||||||
|
sumWidth += initialWindowSize().width();
|
||||||
|
}
|
||||||
if (scales.size()) {
|
if (scales.size()) {
|
||||||
vo->setScale(scales.at(i));
|
vo->setScale(scales.at(i));
|
||||||
}
|
}
|
||||||
if (geometries.size()) {
|
|
||||||
vo->setGeometry(geometries.at(i));
|
|
||||||
} else if (!vo->geometry().isValid()) {
|
|
||||||
vo->setGeometry(QRect(QPoint(sumWidth, 0), initialWindowSize()));
|
|
||||||
sumWidth += initialWindowSize().width();
|
|
||||||
}
|
|
||||||
m_outputs[i] = m_enabledOutputs[i] = vo;
|
m_outputs[i] = m_enabledOutputs[i] = vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,26 @@ VirtualOutput::VirtualOutput(QObject *parent)
|
||||||
: AbstractWaylandOutput()
|
: AbstractWaylandOutput()
|
||||||
{
|
{
|
||||||
Q_UNUSED(parent);
|
Q_UNUSED(parent);
|
||||||
|
|
||||||
setScale(1.);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VirtualOutput::~VirtualOutput()
|
VirtualOutput::~VirtualOutput()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VirtualOutput::init(const QPoint &logicalPosition, const QSize &pixelSize)
|
||||||
|
{
|
||||||
|
KWayland::Server::OutputDeviceInterface::Mode mode;
|
||||||
|
mode.id = 0;
|
||||||
|
mode.size = pixelSize;
|
||||||
|
mode.flags = KWayland::Server::OutputDeviceInterface::ModeFlag::Current;
|
||||||
|
mode.refreshRate = 60000; // TODO
|
||||||
|
AbstractWaylandOutput::initWaylandOutputDevice("model_TODO", "manufacturer_TODO",
|
||||||
|
"UUID_TODO", { mode });
|
||||||
|
setEnabled(true);
|
||||||
|
setGeometry(QRect(logicalPosition, pixelSize));
|
||||||
|
setScale(1.);
|
||||||
|
}
|
||||||
|
|
||||||
QSize VirtualOutput::pixelSize() const
|
QSize VirtualOutput::pixelSize() const
|
||||||
{
|
{
|
||||||
return m_pixelSize;
|
return m_pixelSize;
|
||||||
|
|
|
@ -37,6 +37,8 @@ public:
|
||||||
VirtualOutput(QObject *parent = nullptr);
|
VirtualOutput(QObject *parent = nullptr);
|
||||||
~VirtualOutput() override;
|
~VirtualOutput() override;
|
||||||
|
|
||||||
|
void init(const QPoint &logicalPosition, const QSize &pixelSize);
|
||||||
|
|
||||||
QSize pixelSize() const override;
|
QSize pixelSize() const override;
|
||||||
|
|
||||||
void setGeometry(const QRect &geo);
|
void setGeometry(const QRect &geo);
|
||||||
|
|
Loading…
Reference in a new issue