diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-09 23:14:47 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-01-09 23:14:47 +0000 |
commit | f7cef2016f737a7c80b5307d3d45d8065b9e8789 (patch) | |
tree | 1bcd6023100c3efd4ffe243857c78cd0863832fd /gtk2_ardour/ardour_ui.cc | |
parent | 9766e40235c97cf0231f0bbcb35a163ce18f01db (diff) |
patch from lincoln to fix failure to leave loop play mode at transort stop
git-svn-id: svn://localhost/ardour2/branches/3.0@8489 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c725bce3db..09a6562fb4 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1687,21 +1687,30 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode) void ARDOUR_UI::toggle_session_auto_loop () { - if (_session) { - if (_session->get_play_loop()) { - if (_session->transport_rolling()) { - Location * looploc = _session->locations()->auto_loop_location(); - if (looploc) { - _session->request_locate (looploc->start(), true); - } - } else { - _session->request_play_loop (false); - } - } else { + if (!_session) { + return; + } + + if (_session->get_play_loop()) { + + if (_session->transport_rolling()) { + Location * looploc = _session->locations()->auto_loop_location(); + if (looploc) { - _session->request_play_loop (true); + _session->request_locate (looploc->start(), true); + _session->request_play_loop (false); } + + } else { + _session->request_play_loop (false); + } + } else { + + Location * looploc = _session->locations()->auto_loop_location(); + + if (looploc) { + _session->request_play_loop (true); } } } |