From 8443da3083d79899097f36a3f93f8f88cc79001d Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 28 Aug 2024 13:43:29 +0300 Subject: [PATCH] scene: Fix attempting to scanout empty surfaces X11 windows might be mapped but temporarily have missing wl_surface or the wl_surface can be temporarily unmapped. CCBUG: 491964 --- src/scene/workspacescene.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/scene/workspacescene.cpp b/src/scene/workspacescene.cpp index 475b35a4ac..4d4ea1929e 100644 --- a/src/scene/workspacescene.cpp +++ b/src/scene/workspacescene.cpp @@ -208,11 +208,14 @@ QList WorkspaceScene::scanoutCandidates(ssize_t maxCount) const if (!window->isClient() || window->opacity() != 1.0 || !window->isFullScreen() || window->windowItem()->hasEffects()) { return {}; } - if (!windowItem->surfaceItem()) { + + SurfaceItem *surfaceItem = window->surfaceItem(); + if (!surfaceItem || !surfaceItem->isVisible()) { continue; } + QRegion occlusion; - if (!addCandidates(windowItem->surfaceItem(), ret, maxCount, occlusion)) { + if (!addCandidates(surfaceItem, ret, maxCount, occlusion)) { return {}; } return ret;