summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/session_events.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/session_events.cc b/libs/ardour/session_events.cc
index 6e17545fc3..a14405a9e5 100644
--- a/libs/ardour/session_events.cc
+++ b/libs/ardour/session_events.cc
@@ -211,6 +211,11 @@ SessionEventManager::merge_event (SessionEvent* ev)
/* try to handle immediate events right here */
+ if (ev->type == SessionEvent::Locate || ev->type == SessionEvent::LocateRoll) {
+ /* remove any existing Locates that are waiting to execute */
+ _clear_event_type (ev->type);
+ }
+
if (ev->action_frame == SessionEvent::Immediate) {
process_event (ev);
return;
@@ -222,7 +227,6 @@ SessionEventManager::merge_event (SessionEvent* ev)
case SessionEvent::StopOnce:
_clear_event_type (ev->type);
break;
-
default:
for (Events::iterator i = events.begin(); i != events.end(); ++i) {
if ((*i)->type == ev->type && (*i)->action_frame == ev->action_frame) {
@@ -336,4 +340,3 @@ SessionEventManager::_clear_event_type (SessionEvent::Type type)
set_next_event ();
}
-