fix call parent event handle, added commang to open user folder

This commit is contained in:
Dordovel 2022-11-15 16:15:26 +03:00
parent 49afb87e34
commit 769858fbb4
2 changed files with 7 additions and 11 deletions

View File

@ -14,6 +14,8 @@ class User : public AIconLabel {
~User() = default; ~User() = default;
auto update() -> void; auto update() -> void;
bool handleToggle(GdkEventButton* const& e) override;
private: private:
util::SleeperThread thread_; util::SleeperThread thread_;
@ -22,8 +24,6 @@ class User : public AIconLabel {
static constexpr inline int defaultUserImageWidth_ = 20; static constexpr inline int defaultUserImageWidth_ = 20;
static constexpr inline int defaultUserImageHeight_ = 20; static constexpr inline int defaultUserImageHeight_ = 20;
bool signal_label(GdkEventButton* button) const;
long uptime_as_seconds(); long uptime_as_seconds();
std::string get_user_login() const; std::string get_user_login() const;
std::string get_user_home_dir() const; std::string get_user_home_dir() const;

View File

@ -20,25 +20,21 @@
#include <time.h> #include <time.h>
#endif #endif
#define LEFT_MOUSE_BUTTON 1
namespace waybar::modules { namespace waybar::modules {
User::User(const std::string& id, const Json::Value& config) User::User(const std::string& id, const Json::Value& config)
: AIconLabel(config, "user", id, "{user} {work_H}:{work_M}", 60, false, false, true) { : AIconLabel(config, "user", id, "{user} {work_H}:{work_M}", 60, false, true, true) {
if (AIconLabel::iconEnabled()) { if (AIconLabel::iconEnabled()) {
this->init_avatar(AIconLabel::config_); this->init_avatar(AIconLabel::config_);
} }
this->init_update_worker(); this->init_update_worker();
AModule::event_box_.signal_button_press_event().connect(sigc::mem_fun(this, &User::signal_label));
} }
bool User::signal_label(GdkEventButton* button) const { bool User::handleToggle(GdkEventButton* const& e) {
if (button->type != GDK_BUTTON_PRESS) return true; if (AIconLabel::config_["open-on-click"].isBool() &&
AIconLabel::config_["open-on-click"].asBool()) {
if (button->button == LEFT_MOUSE_BUTTON) {
Gio::AppInfo::launch_default_for_uri("file:///" + this->get_user_home_dir()); Gio::AppInfo::launch_default_for_uri("file:///" + this->get_user_home_dir());
} }
return false; return ALabel::handleToggle(e);
} }
long User::uptime_as_seconds() { long User::uptime_as_seconds() {