Workspaces containing only ignored windows should be considered empty

This fixes #4479
This commit is contained in:
Pol Rivero
2025-10-01 08:06:11 +02:00
parent 45d01ce6e5
commit 5f1db15c2e
2 changed files with 12 additions and 1 deletions

View File

@ -268,6 +268,17 @@ void Workspace::update(const std::string &workspace_icon) {
}
}
bool Workspace::isEmpty() const {
auto ignore_list = m_workspaceManager.getIgnoredWindows();
if (ignore_list.empty()) {
return m_windows == 0;
}
// If there are windows but they are all ignored, consider the workspace empty
return std::all_of(
m_windowMap.begin(), m_windowMap.end(),
[this, &ignore_list](const auto &window_repr) { return shouldSkipWindow(window_repr); });
}
void Workspace::updateTaskbar(const std::string &workspace_icon) {
for (auto child : m_content.get_children()) {
if (child != &m_labelBefore) {