summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.cpp10
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.h3
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor_p.h3
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);
}