Editor::redisplay_tempo() is called early on, before
Editor::set_timecode_ruler_scale() and Editor::compute_bbt_ruler_scale ()
are called. That is a bug which needs fixing (initial tempo+grid display)
. Still, uninitialized vars are not good.
This calls for a unified API to invoke
Automatable methods ::transport_located() and ::transport_stopped()
on Stripables, rather than indirectly calling it via
Route::non_realtime_locate(), Route::nonrealtime_handle_transport_stopped()
Setting a tempo to 'Continue' via right click puts it in a permanent state
of continuing the previous section's end tempo (basically what
'Lock Continue' should have been). This can be disabled (unlocked) by
selecting 'Don't Continue'.
Remove the previous temporary 'Continue' function.
Reorganise menu to separate position lock style from more commonly
used functions.
It was assumed that the drag takes place within an area of musical time.
This is not true for the space before any non-initial
meter-locked tempo.
In the case of the initial tempo, there is no previous section
to perform an end-drag on.
If we've clicked on a tempo bar before the initial tempo,
don't allow anything to happen.
If it was just a click, ensure the tempo curve colour is restored.
Should provide better performance as we now only listen for changes in the
selected regions. Testing every changed region to see if its in
the selection was not working very well under some circumstances.
Length clock uses region relative time converter with offset to display
correct value over tempo changes.
Fix note length setting by using source time converter on a sample duration
based on a session-relative offset.
If the "Sorry I cannot do that" dialog is displayed from
FloatingTextEntry::use_text(), the entry is still visible and accepts
[focus] events. Also the dialog returns focus and multiple
idle_delete_self() will be called for an Entry that's already being
deleted.
Issue #7429 reports that that clicking a route of an already selected group
does not update the editor mixer strip selection. To fix this we call
Editor::set_selected_mixer_strip() at the end of
RouteTimeAxisView::selection_click();
The overhead of maybe calling it twice should be toleratable, as
::set_selected_mixer_strip() checks, if the route is already the current mixer
strip route before setting it.