summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp21
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;
}
}