diff --git a/shell_client.cpp b/shell_client.cpp --- a/shell_client.cpp +++ b/shell_client.cpp @@ -981,10 +981,13 @@ connect(m_serverDecoration, &ServerSideDecorationInterface::destroyed, this, [this] { m_serverDecoration = nullptr; - if (!Workspace::self()) { + if (m_closing || !Workspace::self()) { return; } - updateDecoration(true); + if (!m_unmapped) { + // maybe delay to next event cycle in case the ShellClient is getting destroyed, too + updateDecoration(true); + } } ); if (!m_unmapped) {