If _engine.transport_frame() is not up to date, we emit Located in
Session::backend_sync_callback() because that's when audible_frame() is up to
date. We don't want to emit it twice, because then, the playhead jumps back and
forth.
* mouse click in the ruler -> jump to requested location
* mouse release -> jump to old location (because audible_frame has to catch up)
* backend_sync_callback() called -> jump to new location
}
_last_roll_location = _last_roll_or_reversal_location = _transport_frame;
- Located (); /* EMIT SIGNAL */
+ if (!synced_to_engine () || _transport_frame == _engine.transport_frame ()) {
+ Located (); /* EMIT SIGNAL */
+ }
}
/** Set the transport speed.