Merge pull request #2613 from DreamMaoMao/master

Fixed variable synchronization exception caused by the "hyprland/workspace" module
pull/2620/head
Alexis Rouillard 2023-10-27 17:27:37 +02:00 committed by GitHub
commit e46f66b468
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 4 deletions

View File

@ -153,17 +153,25 @@ auto Workspaces::register_ipc() -> void {
} }
auto Workspaces::update() -> void { auto Workspaces::update() -> void {
//remove workspaces that wait to be removed
unsigned int current_remove_workspace_num = 0;
for (const std::string &workspace_to_remove : workspaces_to_remove_) { for (const std::string &workspace_to_remove : workspaces_to_remove_) {
remove_workspace(workspace_to_remove); remove_workspace(workspace_to_remove);
current_remove_workspace_num++;
}
for (unsigned int i = 0; i < current_remove_workspace_num; i++) {
workspaces_to_remove_.erase(workspaces_to_remove_.begin());
} }
workspaces_to_remove_.clear(); //add workspaces that wait to be created
unsigned int current_create_workspace_num = 0;
for (Json::Value const &workspace_to_create : workspaces_to_create_) { for (Json::Value const &workspace_to_create : workspaces_to_create_) {
create_workspace(workspace_to_create); create_workspace(workspace_to_create);
current_create_workspace_num++;
}
for (unsigned int i = 0; i < current_create_workspace_num; i++) {
workspaces_to_create_.erase(workspaces_to_create_.begin());
} }
workspaces_to_create_.clear();
// get all active workspaces // get all active workspaces
auto monitors = gIPC->getSocket1JsonReply("monitors"); auto monitors = gIPC->getSocket1JsonReply("monitors");