group: fix hover regression
We aren't including the hover detection on the revealer, so when the animation fires we fire the leave event which starts an infinite loop of enter/leave while we watch boxes move back and forth.
This commit is contained in:
		
							parent
							
								
									4efa123183
								
							
						
					
					
						commit
						3ae81d62bc
					
				|  | @ -30,6 +30,7 @@ class Group : public AModule { | |||
|   bool handleMouseEnter(GdkEventCrossing *const &ev) override; | ||||
|   bool handleMouseLeave(GdkEventCrossing *const &ev) override; | ||||
|   bool handleToggle(GdkEventButton *const &ev) override; | ||||
|   void addHoverHandlerTo(Gtk::Widget &widget); | ||||
|   void show_group(); | ||||
|   void hide_group(); | ||||
| }; | ||||
|  |  | |||
|  | @ -81,9 +81,16 @@ Group::Group(const std::string& name, const std::string& id, const Json::Value& | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   addHoverHandlerTo(revealer); | ||||
|   event_box_.add(box); | ||||
| } | ||||
| 
 | ||||
| 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::handleMouseEnter)); | ||||
|   widget.signal_leave_notify_event().connect(sigc::mem_fun(*this, &Group::handleMouseLeave)); | ||||
| } | ||||
| 
 | ||||
| void Group::show_group() { | ||||
|   box.set_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT); | ||||
|   revealer.set_reveal_child(true); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue