summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc2
-rw-r--r--gtk2_ardour/streamview.cc9
-rw-r--r--gtk2_ardour/streamview.h1
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;