diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-28 17:17:23 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-28 17:17:23 -0500 |
commit | 895084a806ae5b14351f29ea3aa50be2006183c6 (patch) | |
tree | 8f40673502302bc488ec37fe14a695b778e55d0e /gtk2_ardour/ardour_button.cc | |
parent | e60933650e6b6054a7bc2709196c5b06d2693572 (diff) |
fix semantics of button press -> leave button -> button release, to match typical GUI toolkits
Diffstat (limited to 'gtk2_ardour/ardour_button.cc')
-rw-r--r-- | gtk2_ardour/ardour_button.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index c79a27264f..7df6b50490 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -709,7 +709,7 @@ ArdourButton::on_button_press_event (GdkEventButton *ev) bool ArdourButton::on_button_release_event (GdkEventButton *ev) { - if ((_elements & Indicator) && _led_rect && _distinct_led_click) { + if (_hovering && (_elements & Indicator) && _led_rect && _distinct_led_click) { if (ev->x >= _led_rect->x && ev->x < _led_rect->x + _led_rect->width && ev->y >= _led_rect->y && ev->y < _led_rect->y + _led_rect->height) { signal_led_clicked(); /* EMIT SIGNAL */ @@ -721,16 +721,17 @@ ArdourButton::on_button_release_event (GdkEventButton *ev) unset_active_state (); } - signal_clicked (); - - if (_act_on_release) { - if (_action) { - _action->activate (); - return true; + if (_hovering) { + signal_clicked (); + + if (_act_on_release) { + if (_action) { + _action->activate (); + return true; + } } } - return false; } |