From 458c03bf9597e8de8691914b5f257dfb9fc1157c Mon Sep 17 00:00:00 2001 From: Bao Trinh Date: Mon, 13 Jun 2022 12:22:23 -0500 Subject: [PATCH] retain instance name css class for custom modules When adding a custom module with a name, e.g.: ```jsonc { ..., "custom/foo#bar": { }, ... } ``` The custom module does not retain the `bar` class as it should, because all the classes are replaced with the runtime output: https://github.com/Alexays/Waybar/blob/1b4a7b02f46c1bce2eafdde2a76f4a3adec6620e/src/modules/custom.cpp#L141-L147 Avoid removing the module instance name class so css class behavior is consistent between all modules. --- include/modules/custom.hpp | 1 + src/modules/custom.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/modules/custom.hpp b/include/modules/custom.hpp index f35ef9ba..711d07e2 100644 --- a/include/modules/custom.hpp +++ b/include/modules/custom.hpp @@ -30,6 +30,7 @@ class Custom : public ALabel { const std::string name_; std::string text_; + std::string id_; std::string alt_; std::string tooltip_; std::vector class_; diff --git a/src/modules/custom.cpp b/src/modules/custom.cpp index bbb7ce6b..6fc01675 100644 --- a/src/modules/custom.cpp +++ b/src/modules/custom.cpp @@ -4,7 +4,12 @@ waybar::modules::Custom::Custom(const std::string& name, const std::string& id, const Json::Value& config) - : ALabel(config, "custom-" + name, id, "{}"), name_(name), fp_(nullptr), pid_(-1) { + : ALabel(config, "custom-" + name, id, "{}"), + name_(name), + id_(id), + percentage_(0), + fp_(nullptr), + pid_(-1) { dp.emit(); if (interval_.count() > 0) { delayWorker(); @@ -140,6 +145,7 @@ auto waybar::modules::Custom::update() -> void { } auto classes = label_.get_style_context()->list_classes(); for (auto const& c : classes) { + if (c == id_) continue; label_.get_style_context()->remove_class(c); } for (auto const& c : class_) {