Fix hidden buttons

This commit is contained in:
gred
2025-05-21 01:38:03 +03:00
parent 24a30b7ffd
commit 15f54cd6ef

View File

@ -772,30 +772,39 @@ void Workspaces::setCurrentMonitorId() {
void Workspaces::sortSpecialCentered() { void Workspaces::sortSpecialCentered() {
std::vector<std::unique_ptr<Workspace>> specialWorkspaces; std::vector<std::unique_ptr<Workspace>> specialWorkspaces;
std::vector<std::unique_ptr<Workspace>> hidedWorkspaces;
std::vector<std::unique_ptr<Workspace>> normalWorkspaces; std::vector<std::unique_ptr<Workspace>> normalWorkspaces;
for (auto &workspace : m_workspaces) { for (auto &workspace : m_workspaces) {
if (workspace->isSpecial()) { if (workspace->isSpecial()) {
specialWorkspaces.push_back(std::move(workspace)); specialWorkspaces.push_back(std::move(workspace));
} else { } else {
normalWorkspaces.push_back(std::move(workspace)); if (workspace->button().is_visible()) {
normalWorkspaces.push_back(std::move(workspace));
} else {
hidedWorkspaces.push_back(std::move(workspace));
}
} }
} }
m_workspaces.clear(); m_workspaces.clear();
size_t center = normalWorkspaces.size() / 2; size_t center = normalWorkspaces.size() / 2;
m_workspaces.insert(m_workspaces.end(), m_workspaces.insert(m_workspaces.end(),
std::make_move_iterator(normalWorkspaces.begin()), std::make_move_iterator(normalWorkspaces.begin()),
std::make_move_iterator(normalWorkspaces.begin() + center)); std::make_move_iterator(normalWorkspaces.begin() + center));
m_workspaces.insert(m_workspaces.end(), m_workspaces.insert(m_workspaces.end(),
std::make_move_iterator(specialWorkspaces.begin()), std::make_move_iterator(specialWorkspaces.begin()),
std::make_move_iterator(specialWorkspaces.end())); std::make_move_iterator(specialWorkspaces.end()));
m_workspaces.insert(m_workspaces.end(), m_workspaces.insert(m_workspaces.end(),
std::make_move_iterator(normalWorkspaces.begin() + center), std::make_move_iterator(normalWorkspaces.begin() + center),
std::make_move_iterator(normalWorkspaces.end())); std::make_move_iterator(normalWorkspaces.end()));
m_workspaces.insert(m_workspaces.end(),
std::make_move_iterator(hidedWorkspaces.begin()),
std::make_move_iterator(hidedWorkspaces.end()));
} }
void Workspaces::sortWorkspaces() { void Workspaces::sortWorkspaces() {