diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-30 12:06:24 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:41 +0200 |
commit | fcd376a4ffb4a2efc8352ce1777e9f869e4e5206 (patch) | |
tree | ab6959cf4d777549dca119d318240b9b724860ce /src/compositor/compositor_api/qwaylandoutput.cpp | |
parent | 400c6d24c2ca3215cd38a30cd3eb530c3b2e970c (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.cpp | 28 |
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(); |