refactor: move signal handler adding into separate method
fix: typo in handleMouseHover method name
This commit is contained in:
		
							parent
							
								
									fad858782c
								
							
						
					
					
						commit
						5e44cb6ba2
					
				|  | @ -19,7 +19,7 @@ class Group : public AModule { | ||||||
|   virtual Gtk::Box& getBox(); |   virtual Gtk::Box& getBox(); | ||||||
|   void addWidget(Gtk::Widget& widget); |   void addWidget(Gtk::Widget& widget); | ||||||
| 
 | 
 | ||||||
|   bool hangleMouseHover(GdkEventCrossing* const& e); |   bool handleMouseHover(GdkEventCrossing* const& e); | ||||||
| 
 | 
 | ||||||
|  protected: |  protected: | ||||||
|   Gtk::Box box; |   Gtk::Box box; | ||||||
|  | @ -28,6 +28,8 @@ class Group : public AModule { | ||||||
|   bool is_first_widget = true; |   bool is_first_widget = true; | ||||||
|   bool is_drawer = false; |   bool is_drawer = false; | ||||||
|   std::string add_class_to_drawer_children; |   std::string add_class_to_drawer_children; | ||||||
|  | 
 | ||||||
|  |   void addHoverHandlerTo(Gtk::Widget& widget); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace waybar
 | }  // namespace waybar
 | ||||||
|  |  | ||||||
|  | @ -75,13 +75,11 @@ Group::Group(const std::string& name, const std::string& id, const Json::Value& | ||||||
|     revealer.add(revealer_box); |     revealer.add(revealer_box); | ||||||
|     box.pack_start(revealer); |     box.pack_start(revealer); | ||||||
| 
 | 
 | ||||||
|     revealer.add_events(Gdk::EventMask::ENTER_NOTIFY_MASK | Gdk::EventMask::LEAVE_NOTIFY_MASK); |     addHoverHandlerTo(revealer); | ||||||
|     revealer.signal_enter_notify_event().connect(sigc::mem_fun(*this, &Group::hangleMouseHover)); |  | ||||||
|     revealer.signal_leave_notify_event().connect(sigc::mem_fun(*this, &Group::hangleMouseHover)); |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool Group::hangleMouseHover(GdkEventCrossing* const& e) { | bool Group::handleMouseHover(GdkEventCrossing* const& e) { | ||||||
|   switch (e->type) { |   switch (e->type) { | ||||||
|     case GDK_ENTER_NOTIFY: |     case GDK_ENTER_NOTIFY: | ||||||
|       revealer.set_reveal_child(true); |       revealer.set_reveal_child(true); | ||||||
|  | @ -96,6 +94,12 @@ bool Group::hangleMouseHover(GdkEventCrossing* const& e) { | ||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void Group::addHoverHandlerTo(Gtk::Widget& widget) { | ||||||
|  |   widget.add_events(Gdk::EventMask::ENTER_NOTIFY_MASK | Gdk::EventMask::LEAVE_NOTIFY_MASK); | ||||||
|  |   widget.signal_enter_notify_event().connect(sigc::mem_fun(*this, &Group::handleMouseHover)); | ||||||
|  |   widget.signal_leave_notify_event().connect(sigc::mem_fun(*this, &Group::handleMouseHover)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| auto Group::update() -> void { | auto Group::update() -> void { | ||||||
|   // noop
 |   // noop
 | ||||||
| } | } | ||||||
|  | @ -108,9 +112,7 @@ void Group::addWidget(Gtk::Widget& widget) { | ||||||
| 
 | 
 | ||||||
|     if (is_first_widget) { |     if (is_first_widget) { | ||||||
|       // Necessary because of GTK's hitbox detection
 |       // Necessary because of GTK's hitbox detection
 | ||||||
|       widget.add_events(Gdk::EventMask::ENTER_NOTIFY_MASK | Gdk::EventMask::LEAVE_NOTIFY_MASK); |       addHoverHandlerTo(widget); | ||||||
|       widget.signal_enter_notify_event().connect(sigc::mem_fun(*this, &Group::hangleMouseHover)); |  | ||||||
|       widget.signal_leave_notify_event().connect(sigc::mem_fun(*this, &Group::hangleMouseHover)); |  | ||||||
|     } else { |     } else { | ||||||
|       widget.get_style_context()->add_class(add_class_to_drawer_children); |       widget.get_style_context()->add_class(add_class_to_drawer_children); | ||||||
|     } |     } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue