diff options
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); } |