diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-05-31 13:04:03 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-05-31 13:04:26 -0400 |
commit | 82cb046fa3f9cb911dc6a2ab192640683a6c57c9 (patch) | |
tree | 546b072f5208b94604b79ff38dee2481f2100e16 | |
parent | d35dfa9c93b1d2234aff5fe64d44f8b83da1fb57 (diff) |
if actively recording, prevent interaction between mouse and audio clock widget(s)
-rw-r--r-- | gtk2_ardour/audio_clock.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index ebece6487c..532e4f8867 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -812,7 +812,7 @@ AudioClock::session_configuration_changed (std::string p) void AudioClock::set (framepos_t when, bool force, framecnt_t offset) { - if ((!force && !is_visible()) || _session == 0) { + if ((!force && !is_visible()) || _session == 0) { return; } @@ -1520,6 +1520,11 @@ AudioClock::index_to_field (int index) const bool AudioClock::on_button_press_event (GdkEventButton *ev) { + if (!_session || _session->actively_recording()) { + /* swallow event, do nothing */ + return true; + } + switch (ev->button) { case 1: if (editable && !_off) { @@ -1563,6 +1568,11 @@ AudioClock::on_button_press_event (GdkEventButton *ev) bool AudioClock::on_button_release_event (GdkEventButton *ev) { + if (!_session || _session->actively_recording()) { + /* swallow event, do nothing */ + return true; + } + if (editable && !_off) { if (dragging) { gdk_pointer_ungrab (GDK_CURRENT_TIME); @@ -1636,7 +1646,7 @@ AudioClock::on_scroll_event (GdkEventScroll *ev) int index; int trailing; - if (editing || _session == 0 || !editable || _off) { + if (editing || _session == 0 || !editable || _off || _session->actively_recording()) { return false; } @@ -1700,7 +1710,7 @@ AudioClock::on_scroll_event (GdkEventScroll *ev) bool AudioClock::on_motion_notify_event (GdkEventMotion *ev) { - if (editing || _session == 0 || !dragging) { + if (editing || _session == 0 || !dragging || _session->actively_recording()) { return false; } @@ -1736,9 +1746,9 @@ AudioClock::on_motion_notify_event (GdkEventMotion *ev) set ((framepos_t) floor (pos - drag_accum * frames), false); // minus because up is negative in GTK } else { set (0 , false); - } + } - drag_accum= 0; + drag_accum= 0; ValueChanged(); /* EMIT_SIGNAL */ } |