diff options
| author | vaxerski <vaxry@vaxry.net> | 2022-12-29 17:06:30 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2022-12-29 17:06:30 +0100 |
| commit | 0baef17a02529dd5fc58eee497737ac28df160c1 (patch) | |
| tree | 9692bd79bcd2242fae121d2afba153ef08ef4f95 /src/Compositor.cpp | |
| parent | 5d095bb9e18a3a00461c0667e3a87b887d69dcae (diff) | |
simplify workspace sanity checks
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index cbd6ba2f..7d019648 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1005,28 +1005,23 @@ CWorkspace* CCompositor::getWorkspaceByID(const int& id) { } void CCompositor::sanityCheckWorkspaces() { - for (auto it = m_vWorkspaces.begin(); it != m_vWorkspaces.end(); ++it) { + auto it = m_vWorkspaces.begin(); + while (it != m_vWorkspaces.end()) { const auto WINDOWSONWORKSPACE = getWindowsOnWorkspace((*it)->m_iID); - if ((WINDOWSONWORKSPACE == 0 && !isWorkspaceVisible((*it)->m_iID))) { - it = m_vWorkspaces.erase(it); - - if (it == m_vWorkspaces.end()) - break; - - continue; - } - if ((*it)->m_bIsSpecialWorkspace && WINDOWSONWORKSPACE == 0) { getMonitorFromID((*it)->m_iMonitorID)->specialWorkspaceID = 0; it = m_vWorkspaces.erase(it); + continue; + } - if (it == m_vWorkspaces.end()) - break; - + if ((WINDOWSONWORKSPACE == 0 && !isWorkspaceVisible((*it)->m_iID))) { + it = m_vWorkspaces.erase(it); continue; } + + ++it; } } |
