There is a DisplaySuspender in MidiRegionView::init(), and another invoked
during the addition of a RegionView to a StreamView. Before this change, both
suspenders were created to invoke a full "model-changed" redisplay. Since every
RegionView must be added to a StreamView to be visible, we only need the second
suspender to invoke the model-change. The first one can be just a view
change (and probably isn't necessary at all, but I did not want to change that
much at this point in time).
VelocityGhostRegion used the visibility of the "parent" note canvas item of a
lollipop canvas item to determine the lolli's visibility. But during the
construction of the MidiRegionView, the note's container is not yet visible, so
this fails.
In addition this logic would hide lollis for notes that are outside the current
visible note range of the track (because the parent note item was not visible).
This change adds a method to MidiRegionView to decide if a note is within the
region's time range, and if so, we show the lollipop item. This means that
lollis for notes outside the note-range will still be visible, which seems more
correct. In addition, the nascent condition of the parent note's container no
longer affects lolli visibility.
The bindings use will all work just fine without this focus grab; the focus
grab in turn confuses the use of some/all global bindings (such as the spacebar
to toggle tranport state)
* Fix crash when inserting note to empty region
* Consistently use fine-grained modifier
* Don't allow to edit BBT as text field
This is currently not supported.
* Fix GTK_IS_CELL_EDITABLE assertions (Tab to next)
The definitions from <stdatomic.h> conflict with <atomic>, which causes
a build failure since <atomic> is included previously.
Signed-off-by: Violet Purcell <vimproved@inventati.org>
This one is more complex than the Beats or superclock variants, because
we cannot just start from the front of the map. Instead, we have to
first iterate through the map so that we start the code in
_get_tempo_and_meter<...> from the TempoPoint and MeterPoint
in effect at the BBT_Argument's reference time.
Track::use_captured_midi_sources is called from use_captured_sources().
which is only called from DiskWriter::transport_stopped_wallclock(),
which is only called from Session::non_realtime_stop().
This solves several issues related to splitting or pasting regions, when
there is more than one layer.
Rather than assign a new group-id for "all the regions on the right of a
split", only ions that had a *prior* group-relationship should be
propagated into the new group.
Signed-off-by: Robin Gareus <robin@gareus.org>
LLVM libc++ does not have the ext/atomicity.h header. This fix is copied
from the upstream vst3_pluginterfaces repo.
Signed-off-by: Violet Purcell <vimproved@inventati.org>