| 384 | } |
| 385 | |
| 386 | std::string Workspaces::getIcon(const std::string& name, const Json::Value& node) { |
| 387 | std::vector<std::string> keys = {"high-priority-named", "urgent", "focused", name, "default"}; |
| 388 | for (auto const& key : keys) { |
| 389 | if (key == "high-priority-named") { |
| 390 | auto it = std::find_if(high_priority_named_.begin(), high_priority_named_.end(), |
| 391 | [&](const std::string& member) { return member == name; }); |
| 392 | if (it != high_priority_named_.end()) { |
| 393 | return config_["format-icons"][name].asString(); |
| 394 | } |
| 395 | |
| 396 | it = std::find_if(high_priority_named_.begin(), high_priority_named_.end(), |
| 397 | [&](const std::string& member) { |
| 398 | return trimWorkspaceName(member) == trimWorkspaceName(name); |
| 399 | }); |
| 400 | if (it != high_priority_named_.end()) { |
| 401 | return config_["format-icons"][trimWorkspaceName(name)].asString(); |
| 402 | } |
| 403 | } |
| 404 | if (key == "focused" || key == "urgent") { |
| 405 | if (config_["format-icons"][key].isString() && hasFlag(node, key)) { |
| 406 | return config_["format-icons"][key].asString(); |
| 407 | } |
| 408 | } else if (config_["format-icons"]["persistent"].isString() && |
| 409 | node["target_output"].isString()) { |
| 410 | return config_["format-icons"]["persistent"].asString(); |
| 411 | } else if (config_["format-icons"][key].isString()) { |
| 412 | return config_["format-icons"][key].asString(); |
| 413 | } else if (config_["format-icons"][trimWorkspaceName(key)].isString()) { |
| 414 | return config_["format-icons"][trimWorkspaceName(key)].asString(); |
| 415 | } |
| 416 | } |
| 417 | return name; |
| 418 | } |
| 419 | |
| 420 | bool Workspaces::handleScroll(GdkEventScroll* e) { |
| 421 | if (gdk_event_get_pointer_emulated((GdkEvent*)e) != 0) { |