mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
refactor: try/catch around json parse
This commit is contained in:
@ -23,19 +23,23 @@ void Workspaces::onEvent(const struct Ipc::ipc_response &res) { ipc_.sendCmd(IPC
|
||||
|
||||
void Workspaces::onCmd(const struct Ipc::ipc_response &res) {
|
||||
if (res.type == IPC_GET_WORKSPACES) {
|
||||
auto payload = parser_.parse(res.payload);
|
||||
if (payload.isArray()) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
workspaces_.clear();
|
||||
std::copy_if(payload.begin(),
|
||||
payload.end(),
|
||||
std::back_inserter(workspaces_),
|
||||
[&](const auto &workspace) {
|
||||
return !config_["all-outputs"].asBool()
|
||||
? workspace["output"].asString() == bar_.output->name
|
||||
: true;
|
||||
});
|
||||
dp.emit();
|
||||
try {
|
||||
auto payload = parser_.parse(res.payload);
|
||||
if (payload.isArray()) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
workspaces_.clear();
|
||||
std::copy_if(payload.begin(),
|
||||
payload.end(),
|
||||
std::back_inserter(workspaces_),
|
||||
[&](const auto &workspace) {
|
||||
return !config_["all-outputs"].asBool()
|
||||
? workspace["output"].asString() == bar_.output->name
|
||||
: true;
|
||||
});
|
||||
dp.emit();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
std::cerr << "Workspaces: " << e.what() << std::endl;
|
||||
}
|
||||
} else {
|
||||
if (scrolling_) {
|
||||
|
Reference in New Issue
Block a user