Merge pull request #1589 from qubidt/module-group-orientation

group module: configurable orientation
This commit is contained in:
Alex
2023-03-02 19:42:22 +01:00
committed by GitHub
4 changed files with 37 additions and 7 deletions

View File

@ -739,7 +739,13 @@ void waybar::Bar::getModules(const Factory& factory, const std::string& pos,
AModule* module;
if (ref.compare(0, 6, "group/") == 0 && ref.size() > 6) {
auto group_module = new waybar::Group(ref, *this, config[ref]);
auto hash_pos = ref.find('#');
auto id_name = ref.substr(6, hash_pos - 6);
auto class_name = hash_pos != std::string::npos ? ref.substr(hash_pos + 1) : "";
auto parent = group ? group : &this->box_;
auto vertical = parent->get_orientation() == Gtk::ORIENTATION_VERTICAL;
auto group_module = new waybar::Group(id_name, class_name, config[ref], vertical);
getModules(factory, ref, &group_module->box);
module = group_module;
} else {
@ -761,11 +767,11 @@ void waybar::Bar::getModules(const Factory& factory, const std::string& pos,
modules_right_.emplace_back(module_sp);
}
}
module->dp.connect([module, name] {
module->dp.connect([module, ref] {
try {
module->update();
} catch (const std::exception& e) {
spdlog::error("{}: {}", name.asString(), e.what());
spdlog::error("{}: {}", ref, e.what());
}
});
} catch (const std::exception& e) {