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 handleMouseEnter(GdkEventCrossing *const &ev) override;
|
||||||
bool handleMouseLeave(GdkEventCrossing *const &ev) override;
|
bool handleMouseLeave(GdkEventCrossing *const &ev) override;
|
||||||
bool handleToggle(GdkEventButton *const &ev) override;
|
bool handleToggle(GdkEventButton *const &ev) override;
|
||||||
|
void addHoverHandlerTo(Gtk::Widget &widget);
|
||||||
void show_group();
|
void show_group();
|
||||||
void hide_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);
|
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() {
|
void Group::show_group() {
|
||||||
box.set_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT);
|
box.set_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT);
|
||||||
revealer.set_reveal_child(true);
|
revealer.set_reveal_child(true);
|
||||||
|
|
Loading…
Reference in New Issue