diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/streamview.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/streamview.h | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index ca0506878e..0223e8d027 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1200,7 +1200,7 @@ ARDOUR_UI::transport_record () break; case Session::Recording: case Session::Enabled: - session->disable_record (true); + session->disable_record (false, true); } } } diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index 62d8e99254..4a454a32f5 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -72,6 +72,7 @@ StreamView::StreamView (RouteTimeAxisView& tv) if (_trackview.is_track()) { _trackview.track()->DiskstreamChanged.connect (mem_fun (*this, &StreamView::diskstream_changed)); _trackview.session().TransportStateChange.connect (mem_fun (*this, &StreamView::transport_changed)); + _trackview.session().TransportLooped.connect (mem_fun (*this, &StreamView::transport_looped)); _trackview.get_diskstream()->RecordEnableChanged.connect (mem_fun (*this, &StreamView::rec_enable_changed)); _trackview.session().RecordStateChanged.connect (mem_fun (*this, &StreamView::sess_rec_enable_changed)); } @@ -312,6 +313,14 @@ StreamView::transport_changed() } void +StreamView::transport_looped() +{ + // to force a new rec region + rec_active = false; + Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &StreamView::setup_rec_box)); +} + +void StreamView::update_rec_box () { if (rec_active && rec_rects.size() > 0) { diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index ef55ebc4af..4df00d84a5 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -101,6 +101,7 @@ protected: //private: (FIXME?) void transport_changed(); + void transport_looped(); void rec_enable_changed(); void sess_rec_enable_changed(); virtual void setup_rec_box () = 0; |