compositor_wayland: ignore placeholder outputs

Placeholder outputs don't have renderloops or output layers. If they're
not ignored, KWin crashes
This commit is contained in:
Xaver Hugl 2023-09-26 17:42:36 +02:00
parent 0605054193
commit 66cef35c64

View file

@ -245,6 +245,9 @@ void WaylandCompositor::stop()
void WaylandCompositor::addOutput(Output *output) void WaylandCompositor::addOutput(Output *output)
{ {
if (output->isPlaceholder()) {
return;
}
auto workspaceLayer = new RenderLayer(output->renderLoop()); auto workspaceLayer = new RenderLayer(output->renderLoop());
workspaceLayer->setDelegate(std::make_unique<SceneDelegate>(m_scene.get(), output)); workspaceLayer->setDelegate(std::make_unique<SceneDelegate>(m_scene.get(), output));
workspaceLayer->setGeometry(output->rect()); workspaceLayer->setGeometry(output->rect());
@ -357,6 +360,9 @@ void WaylandCompositor::addOutput(Output *output)
void WaylandCompositor::removeOutput(Output *output) void WaylandCompositor::removeOutput(Output *output)
{ {
if (output->isPlaceholder()) {
return;
}
removeSuperLayer(m_superlayers[output->renderLoop()]); removeSuperLayer(m_superlayers[output->renderLoop()]);
} }