mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
Fix crash on quickly switching workspaces
The hyprland/window widget had an assertion ensuring that the output from hyprctl matched the currently selected workspace id. However this assertion fails if workspaces are switched too quickly, causing the selected workspace to differ in id from the one in hyprctl, failing this assertion which then crashes the entire program. This fix simply changes this assertion into an if statement, and if a mismatch is found, empty string is returned as the window name.
This commit is contained in:
parent
a7e6330078
commit
90f206f92a
@ -59,7 +59,10 @@ std::string Window::getLastWindowTitle(uint workspaceID) {
|
|||||||
auto workspace = std::find_if(json.begin(), json.end(), [&](Json::Value workspace) {
|
auto workspace = std::find_if(json.begin(), json.end(), [&](Json::Value workspace) {
|
||||||
return workspace["id"].as<uint>() == workspaceID;
|
return workspace["id"].as<uint>() == workspaceID;
|
||||||
});
|
});
|
||||||
assert(workspace != std::end(json));
|
|
||||||
|
if (workspace != std::end(json)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
return (*workspace)["lastwindowtitle"].as<std::string>();
|
return (*workspace)["lastwindowtitle"].as<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user