diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-18 12:36:43 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-09-18 14:54:36 +0000 |
commit | c73103268debe47f8b51fe08d69e00a6d7d109f9 (patch) | |
tree | 4f0f22070ebc858901cac4791aced9b3805d708f /src/compositor/compositor_api | |
parent | dea335f03ac4ce0a28cb75be76b598727b073ef6 (diff) |
Add a setDefaultOutput function to QWaylandCompositor
Have to remove the assert in QWaylandCompositorPrivate::addOutput since
setDefault output can also add outputs now, and it might be called by
both
Change-Id: Ic2a321fde37917427dfb68b38dd3e6af2ed20368
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 10 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 3 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor_p.h | 3 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index 8d6815924..0ba5838e0 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -461,6 +461,16 @@ QWaylandOutput *QWaylandCompositor::defaultOutput() const return d->defaultOutput(); } +void QWaylandCompositor::setDefaultOutput(QWaylandOutput *output) +{ + Q_D(QWaylandCompositor); + if (d->outputs.size() && d->outputs.first() == output) + return; + d->outputs.removeOne(output); + d->outputs.prepend(output); + defaultOutputChanged(); +} + QList<QWaylandOutput *> QWaylandCompositor::outputs() const { Q_D(const QWaylandCompositor); diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index a6b3cfee8..6f0abf02b 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -70,7 +70,7 @@ class Q_COMPOSITOR_EXPORT QWaylandCompositor : public QObject, public QWaylandEx Q_DECLARE_PRIVATE(QWaylandCompositor) Q_PROPERTY(QByteArray socketName READ socketName WRITE setSocketName) Q_PROPERTY(bool retainedSelection READ retainedSelectionEnabled WRITE setRetainedSelectionEnabled) - Q_PROPERTY(QWaylandOutput *defaultOutput READ defaultOutput NOTIFY defaultOutputChanged) + Q_PROPERTY(QWaylandOutput *defaultOutput READ defaultOutput WRITE setDefaultOutput NOTIFY defaultOutputChanged) Q_PROPERTY(bool useHardwareIntegrationExtension READ useHardwareIntegrationExtension WRITE setUseHardwareIntegrationExtension NOTIFY useHardwareIntegrationExtensionChanged) Q_PROPERTY(QWaylandInputDevice *defaultInputDevice READ defaultInputDevice NOTIFY defaultInputDeviceChanged) @@ -97,6 +97,7 @@ public: Q_INVOKABLE QWaylandOutput *outputFor(QWindow *window) const; QWaylandOutput *defaultOutput() const; + void setDefaultOutput(QWaylandOutput *output); QList<QWaylandOutput *> outputs() const; uint currentTimeMsecs() const; diff --git a/src/compositor/compositor_api/qwaylandcompositor_p.h b/src/compositor/compositor_api/qwaylandcompositor_p.h index a9bcdd5a4..4a257e459 100644 --- a/src/compositor/compositor_api/qwaylandcompositor_p.h +++ b/src/compositor/compositor_api/qwaylandcompositor_p.h @@ -172,7 +172,8 @@ void QWaylandCompositorPrivate::removeClient(QWaylandClient *client) void QWaylandCompositorPrivate::addOutput(QWaylandOutput *output) { Q_ASSERT(output); - Q_ASSERT(!outputs.contains(output)); + if (outputs.contains(output)) + return; outputs.append(output); } |