Add control-focus notifications from bindable widgets.
authorRobin Gareus <robin@gareus.org>
Sun, 2 Jul 2017 16:18:22 +0000 (18:18 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 2 Jul 2017 16:19:13 +0000 (18:19 +0200)
libs/gtkmm2ext/gtkmm2ext/slider_controller.h
libs/gtkmm2ext/slider_controller.cc

index e756180eaf0b47671bf55c3040718d5720f89733..93af41356e467b360fbcd4d1aff9a7b511decdd4 100644 (file)
@@ -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();
 
index 9b55efbcd1855a22351f35026821fc128da9325d..d70bbcc03560aaedf101d382e88b99af9afac58f 100644 (file)
@@ -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 ()
 {