diff --git a/scene.cpp b/scene.cpp index ffd181d0fe..ff6aec7273 100644 --- a/scene.cpp +++ b/scene.cpp @@ -583,7 +583,8 @@ WindowQuadList Scene::Window::buildQuads(bool force) const Client *client = dynamic_cast(toplevel); QRegion contents = clientShape(); QRegion center = toplevel->transparentRect(); - QRegion decoration = shape() - center; + QRegion decoration = (client && Workspace::self()->decorationHasAlpha() ? + QRegion(client->decorationRect()) : shape()) - center; ret = makeQuads(WindowQuadContents, contents); if (!client || !(center.isEmpty() || client->isShade())) ret += makeQuads(WindowQuadDecoration, decoration);