diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-02 18:18:22 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-02 18:19:13 +0200 |
commit | c4fcb12d128857a0eaab7d2093d38fdf4cc641cc (patch) | |
tree | eecea1a71fe0dfa7c93146fcea0191fb98b18333 | |
parent | 6f986173f3cfdf043eec34bc360915c94a9b67de (diff) |
Add control-focus notifications from bindable widgets.
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/slider_controller.h | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/slider_controller.cc | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/slider_controller.h b/libs/gtkmm2ext/gtkmm2ext/slider_controller.h index e756180eaf..93af41356e 100644 --- a/libs/gtkmm2ext/gtkmm2ext/slider_controller.h +++ b/libs/gtkmm2ext/gtkmm2ext/slider_controller.h @@ -54,6 +54,8 @@ class LIBGTKMM2EXT_API SliderController : public Gtkmm2ext::PixFader protected: bool on_button_press_event (GdkEventButton *ev); + bool on_enter_notify_event (GdkEventCrossing* ev); + bool on_leave_notify_event (GdkEventCrossing* ev); void ctrl_adjusted(); void spin_adjusted(); diff --git a/libs/gtkmm2ext/slider_controller.cc b/libs/gtkmm2ext/slider_controller.cc index 9b55efbcd1..d70bbcc035 100644 --- a/libs/gtkmm2ext/slider_controller.cc +++ b/libs/gtkmm2ext/slider_controller.cc @@ -65,6 +65,25 @@ SliderController::on_button_press_event (GdkEventButton *ev) return PixFader::on_button_press_event (ev); } +bool +SliderController::on_enter_notify_event (GdkEventCrossing* ev) +{ + boost::shared_ptr<PBD::Controllable> c (_binding_proxy.get_controllable ()); + if (c) { + PBD::Controllable::GUIFocusChanged (boost::weak_ptr<PBD::Controllable> (c)); + } + return PixFader::on_enter_notify_event (ev); +} + +bool +SliderController::on_leave_notify_event (GdkEventCrossing* ev) +{ + if (_binding_proxy.get_controllable()) { + PBD::Controllable::GUIFocusChanged (boost::weak_ptr<PBD::Controllable> ()); + } + return PixFader::on_leave_notify_event (ev); +} + void SliderController::ctrl_adjusted () { |