pixfader: don't change drawing state (prelight) just because a leave event arrives...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Dec 2012 21:52:55 +0000 (21:52 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Dec 2012 21:52:55 +0000 (21:52 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@13633 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/gtkmm2ext/pixfader.cc

index 931c5ebe45470909ddaa1eabab67ad48f3867e7c..e9d053a8bdfd9a7d7bb27f6ecdb19293316b8ae7 100644 (file)
@@ -305,6 +305,11 @@ PixFader::on_button_release_event (GdkEventButton* ev)
                        remove_modal_grab();
                        dragging = false;
 
+                       if (!_hovering) {
+                               Keyboard::magic_widget_drop_focus();
+                               queue_draw ();
+                       }
+
                        if (ev_pos == grab_start) {
 
                                /* no motion - just a click */
@@ -499,9 +504,11 @@ PixFader::on_enter_notify_event (GdkEventCrossing*)
 bool
 PixFader::on_leave_notify_event (GdkEventCrossing*)
 {
-       _hovering = false;
-       Keyboard::magic_widget_drop_focus();
-       queue_draw ();
+       if (!dragging) {
+               _hovering = false;
+               Keyboard::magic_widget_drop_focus();
+               queue_draw ();
+       }
        return false;
 }