Verify that the client supports the compositor removing outputs
Change-Id: I799d29fa43ad429b7973d7a210aca554d6b0ce26 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
This commit is contained in:
parent
679dc2e281
commit
2b32defc38
@ -138,6 +138,7 @@ public slots:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void primaryScreen();
|
void primaryScreen();
|
||||||
|
void screens();
|
||||||
void windowScreens();
|
void windowScreens();
|
||||||
void createDestroyWindow();
|
void createDestroyWindow();
|
||||||
void events();
|
void events();
|
||||||
@ -158,6 +159,17 @@ void tst_WaylandClient::primaryScreen()
|
|||||||
QTRY_COMPARE(QGuiApplication::primaryScreen()->size(), screenSize);
|
QTRY_COMPARE(QGuiApplication::primaryScreen()->size(), screenSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_WaylandClient::screens()
|
||||||
|
{
|
||||||
|
QTRY_COMPARE(QGuiApplication::screens().size(), 1);
|
||||||
|
compositor->sendAddOutput();
|
||||||
|
QTRY_COMPARE(QGuiApplication::screens().size(), 2);
|
||||||
|
QSharedPointer<MockOutput> secondOutput;
|
||||||
|
QTRY_VERIFY(secondOutput = compositor->output(1));
|
||||||
|
compositor->sendRemoveOutput(secondOutput);
|
||||||
|
QTRY_COMPARE(QGuiApplication::screens().size(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
void tst_WaylandClient::windowScreens()
|
void tst_WaylandClient::windowScreens()
|
||||||
{
|
{
|
||||||
QSharedPointer<MockOutput> firstOutput;
|
QSharedPointer<MockOutput> firstOutput;
|
||||||
@ -191,6 +203,10 @@ void tst_WaylandClient::windowScreens()
|
|||||||
compositor->sendSurfaceLeave(surface, firstOutput);
|
compositor->sendSurfaceLeave(surface, firstOutput);
|
||||||
QTRY_COMPARE(window.screen(), secondaryScreen);
|
QTRY_COMPARE(window.screen(), secondaryScreen);
|
||||||
|
|
||||||
|
compositor->sendRemoveOutput(secondOutput);
|
||||||
|
QTRY_COMPARE(QGuiApplication::screens().size(), 1);
|
||||||
|
QCOMPARE(window.screen(), primaryScreen);
|
||||||
|
|
||||||
window.destroy();
|
window.destroy();
|
||||||
QTRY_VERIFY(!compositor->surface());
|
QTRY_VERIFY(!compositor->surface());
|
||||||
}
|
}
|
||||||
|
@ -189,6 +189,13 @@ void MockCompositor::sendAddOutput()
|
|||||||
processCommand(command);
|
processCommand(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MockCompositor::sendRemoveOutput(const QSharedPointer<MockOutput> &output)
|
||||||
|
{
|
||||||
|
Command command = makeCommand(Impl::Compositor::sendRemoveOutput, m_compositor);
|
||||||
|
command.parameters << QVariant::fromValue(output);
|
||||||
|
processCommand(command);
|
||||||
|
}
|
||||||
|
|
||||||
void MockCompositor::sendSurfaceEnter(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output)
|
void MockCompositor::sendSurfaceEnter(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output)
|
||||||
{
|
{
|
||||||
Command command = makeCommand(Impl::Compositor::sendSurfaceEnter, m_compositor);
|
Command command = makeCommand(Impl::Compositor::sendSurfaceEnter, m_compositor);
|
||||||
|
@ -88,6 +88,7 @@ public:
|
|||||||
static void waitForStartDrag(void *data, const QList<QVariant> ¶meters);
|
static void waitForStartDrag(void *data, const QList<QVariant> ¶meters);
|
||||||
static void setOutputMode(void *compositor, const QList<QVariant> ¶meters);
|
static void setOutputMode(void *compositor, const QList<QVariant> ¶meters);
|
||||||
static void sendAddOutput(void *data, const QList<QVariant> ¶meters);
|
static void sendAddOutput(void *data, const QList<QVariant> ¶meters);
|
||||||
|
static void sendRemoveOutput(void *data, const QList<QVariant> ¶meters);
|
||||||
static void sendSurfaceEnter(void *data, const QList<QVariant> ¶meters);
|
static void sendSurfaceEnter(void *data, const QList<QVariant> ¶meters);
|
||||||
static void sendSurfaceLeave(void *data, const QList<QVariant> ¶meters);
|
static void sendSurfaceLeave(void *data, const QList<QVariant> ¶meters);
|
||||||
|
|
||||||
@ -179,6 +180,7 @@ public:
|
|||||||
void sendDataDeviceDrop(const QSharedPointer<MockSurface> &surface);
|
void sendDataDeviceDrop(const QSharedPointer<MockSurface> &surface);
|
||||||
void sendDataDeviceLeave(const QSharedPointer<MockSurface> &surface);
|
void sendDataDeviceLeave(const QSharedPointer<MockSurface> &surface);
|
||||||
void sendAddOutput();
|
void sendAddOutput();
|
||||||
|
void sendRemoveOutput(const QSharedPointer<MockOutput> &output);
|
||||||
void sendSurfaceEnter(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output);
|
void sendSurfaceEnter(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output);
|
||||||
void sendSurfaceLeave(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output);
|
void sendSurfaceLeave(const QSharedPointer<MockSurface> &surface, QSharedPointer<MockOutput> &output);
|
||||||
void waitForStartDrag();
|
void waitForStartDrag();
|
||||||
|
@ -44,6 +44,16 @@ void Compositor::sendAddOutput(void *data, const QList<QVariant> ¶meters) {
|
|||||||
compositor->dispatchEvents();
|
compositor->dispatchEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Compositor::sendRemoveOutput(void *data, const QList<QVariant> ¶meters) {
|
||||||
|
Compositor *compositor = static_cast<Compositor *>(data);
|
||||||
|
Q_ASSERT(compositor);
|
||||||
|
Output *output = resolveOutput(parameters.first());
|
||||||
|
Q_ASSERT(output);
|
||||||
|
bool wasRemoved = compositor->m_outputs.removeOne(output);
|
||||||
|
Q_ASSERT(wasRemoved);
|
||||||
|
delete output;
|
||||||
|
}
|
||||||
|
|
||||||
void Compositor::setOutputMode(void *data, const QList<QVariant> ¶meters)
|
void Compositor::setOutputMode(void *data, const QList<QVariant> ¶meters)
|
||||||
{
|
{
|
||||||
Compositor *compositor = static_cast<Compositor *>(data);
|
Compositor *compositor = static_cast<Compositor *>(data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user