diff options
Diffstat (limited to 'libs/gtkmm2ext')
-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 () { |