mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
use IPC for click events, clang-tidy fixes
This commit is contained in:
parent
495b63d7dc
commit
f3df15650a
@ -163,13 +163,13 @@ Workspaces::~Workspaces() {
|
||||
std::lock_guard<std::mutex> lg(mutex_);
|
||||
}
|
||||
|
||||
Workspace::Workspace(const Json::Value &value) {
|
||||
id_ = value["id"].asInt();
|
||||
name_ = value["name"].asString();
|
||||
monitor_ = value["monitor"].asString(); // TODO:allow using monitor desc
|
||||
windows_ = value["id"].asInt();
|
||||
active_ = 1;
|
||||
is_special_ = 0;
|
||||
Workspace::Workspace(const Json::Value &value)
|
||||
: id_(value["id"].asInt()),
|
||||
name_(value["name"].asString()),
|
||||
monitor_(value["monitor"].asString()), // TODO:allow using monitor desc
|
||||
windows_(value["id"].asInt()) {
|
||||
active_ = true;
|
||||
is_special_ = false;
|
||||
|
||||
if (name_.find("name:") == 0) {
|
||||
name_ = name_.substr(5);
|
||||
@ -253,16 +253,21 @@ std::string &Workspace::select_icon(std::map<std::string, std::string> &icons_ma
|
||||
}
|
||||
|
||||
auto Workspace::handle_clicked(GdkEventButton *bt) -> bool {
|
||||
try {
|
||||
if (id() > 0) { // normal
|
||||
system(("hyprctl dispatch workspace " + std::to_string(id()) + " &> /dev/null").c_str());
|
||||
gIPC->getSocket1Reply("dispatch workspace " + std::to_string(id()));
|
||||
} else if (!is_special()) { // named normal
|
||||
system(("hyprctl dispatch workspace name:" + name() + " &> /dev/null").c_str());
|
||||
gIPC->getSocket1Reply("dispatch workspace name" + name());
|
||||
} else if (id() != -99) { // named special
|
||||
system(("hyprctl dispatch togglespecialworkspace name:" + name() + " &> /dev/null").c_str());
|
||||
gIPC->getSocket1Reply("dispatch togglespecialworkspace name" + name());
|
||||
} else { // special
|
||||
system("hyprctl dispatch togglespecialworkspace special &> /dev/null");
|
||||
gIPC->getSocket1Reply("dispatch togglespecialworkspace special");
|
||||
}
|
||||
return 1;
|
||||
return true;
|
||||
} catch (const std::exception &e) {
|
||||
spdlog::error("Failed to dispatch workspace: {}", e.what());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace waybar::modules::hyprland
|
||||
|
Loading…
Reference in New Issue
Block a user