Merge pull request #206 from dikeert/issue/205-add-option-to-show-current-workspace-only

resolves #205
This commit is contained in:
Alex 2019-03-03 18:04:03 +01:00 committed by GitHub
commit 7e4fed8218
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View File

@ -20,6 +20,7 @@ class Workspaces : public IModule {
private: private:
void worker(); void worker();
void addWorkspace(const Json::Value&); void addWorkspace(const Json::Value&);
void onButtonReady(const Json::Value&, Gtk::Button&);
std::string getIcon(const std::string&, const Json::Value&); std::string getIcon(const std::string&, const Json::Value&);
bool handleScroll(GdkEventScroll*); bool handleScroll(GdkEventScroll*);
std::string getPrevWorkspace(); std::string getPrevWorkspace();

View File

@ -87,7 +87,8 @@ auto waybar::modules::sway::Workspaces::update() -> void
} else { } else {
button.set_label(icon); button.set_label(icon);
} }
button.show();
onButtonReady(node, button);
} }
} }
if (scrolling_) { if (scrolling_) {
@ -131,7 +132,8 @@ void waybar::modules::sway::Workspaces::addWorkspace(const Json::Value &node)
if (node["urgent"].asBool()) { if (node["urgent"].asBool()) {
button.get_style_context()->add_class("urgent"); button.get_style_context()->add_class("urgent");
} }
button.show();
onButtonReady(node, button);
} }
std::string waybar::modules::sway::Workspaces::getIcon(const std::string &name, std::string waybar::modules::sway::Workspaces::getIcon(const std::string &name,
@ -251,6 +253,19 @@ std::string waybar::modules::sway::Workspaces::trimWorkspaceName(std::string nam
return name; return name;
} }
void waybar::modules::sway::Workspaces::onButtonReady(const Json::Value& node, Gtk::Button& button)
{
if (config_["current-only"].asBool()) {
if (node["focused"].asBool()) {
button.show();
} else {
button.hide();
}
} else {
button.show();
}
}
waybar::modules::sway::Workspaces::operator Gtk::Widget &() { waybar::modules::sway::Workspaces::operator Gtk::Widget &() {
return box_; return box_;
} }