summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandoutput.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-30 12:06:24 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commitfcd376a4ffb4a2efc8352ce1777e9f869e4e5206 (patch)
treeab6959cf4d777549dca119d318240b9b724860ce /src/compositor/compositor_api/qwaylandoutput.cpp
parent400c6d24c2ca3215cd38a30cd3eb530c3b2e970c (diff)
Introducing QWaylandOutputSpace
Its purpose is to make it possible to have multiscreen environments, and also multiple multioutput environments It is also an abstraction to make it clear that outputs are arranged in a 2d space Change-Id: I418509996a03b2ca1a12aec9c9e25e143a15a10f
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r--src/compositor/compositor_api/qwaylandoutput.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp
index dffda876e..d94f38878 100644
--- a/src/compositor/compositor_api/qwaylandoutput.cpp
+++ b/src/compositor/compositor_api/qwaylandoutput.cpp
@@ -51,15 +51,13 @@
QT_BEGIN_NAMESPACE
-QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window,
+QWaylandOutput::QWaylandOutput(QWaylandOutputSpace *outputSpace, QWindow *window,
const QString &manufacturer, const QString &model)
: QObject()
- , d_ptr(new QtWayland::Output(compositor->handle(), window))
+ , d_ptr(new QtWayland::Output(this, outputSpace, window))
{
- d_ptr->m_output = this;
d_ptr->setManufacturer(manufacturer);
d_ptr->setModel(model);
- d_ptr->compositor()->addOutput(this);
QObject::connect(window, &QWindow::widthChanged, this, &QWaylandOutput::setWidth);
QObject::connect(window, &QWindow::heightChanged, this, &QWaylandOutput::setHeight);
QObject::connect(window, &QObject::destroyed, this, &QWaylandOutput::windowDestroyed);
@@ -67,7 +65,7 @@ QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window,
QWaylandOutput::~QWaylandOutput()
{
- d_ptr->compositor()->removeOutput(this);
+ d_ptr->outputSpace()->removeOutput(this);
}
QWaylandOutput *QWaylandOutput::fromResource(wl_resource *resource)
@@ -81,7 +79,18 @@ QWaylandOutput *QWaylandOutput::fromResource(wl_resource *resource)
if (!output)
return Q_NULLPTR;
- return output->output();
+ return output->waylandOutput();
+}
+
+void QWaylandOutput::setOutputSpace(QWaylandOutputSpace *outputSpace)
+{
+ Q_ASSERT(outputSpace);
+ d_ptr->setOutputSpace(outputSpace, true);
+}
+
+QWaylandOutputSpace *QWaylandOutput::outputSpace() const
+{
+ return d_ptr->outputSpace();
}
void QWaylandOutput::update()
@@ -94,7 +103,7 @@ void QWaylandOutput::update()
QWaylandCompositor *QWaylandOutput::compositor() const
{
- return d_ptr->compositor()->waylandCompositor();
+ return d_ptr->outputSpace()->compositor();
}
QString QWaylandOutput::manufacturer() const
@@ -263,11 +272,6 @@ void QWaylandOutput::sendFrameCallbacks()
d_ptr->sendFrameCallbacks();
}
-QList<QWaylandSurface *> QWaylandOutput::surfacesForClient(QWaylandClient *client) const
-{
- return d_ptr->surfacesForClient(client);
-}
-
QtWayland::Output *QWaylandOutput::handle() const
{
return d_ptr.data();