diff --git a/effects.cpp b/effects.cpp --- a/effects.cpp +++ b/effects.cpp @@ -1897,9 +1897,8 @@ } template -EffectWindowList getMainWindows(Toplevel *toplevel) +EffectWindowList getMainWindows(T *c) { - T *c = static_cast(toplevel); const auto mainclients = c->mainClients(); EffectWindowList ret; ret.reserve(mainclients.size()); @@ -1911,12 +1910,13 @@ EffectWindowList EffectWindowImpl::mainWindows() const { - if (dynamic_cast(toplevel)) { - return getMainWindows(toplevel); - } else if (toplevel->isDeleted()) { - return getMainWindows(toplevel); + if (auto client = qobject_cast(toplevel)) { + return getMainWindows(client); } - return EffectWindowList(); + if (auto deleted = qobject_cast(toplevel)) { + return getMainWindows(deleted); + } + return {}; } WindowQuadList EffectWindowImpl::buildQuads(bool force) const