Selected notes no longer show the selected color for fill, following Alex
Mitchell's proof-of-concept patch that showed it was easier to see what you're
doing when the fill color shows velocity and we just use outline for selection
status.
Plugin inline displays were forbidden to shrink as this might cause a deadlock
when the shrinkage causes the scrollbar to disappear.
display shrink → scrollbar unneeded → scrollbar disappears →
more horizontal space -> display grows -> scrollbar appears →
less horizontal space -> display shrink and so forth
This was formerly avoided by not allowing display shrinkage.
The solution proposed here sets the maximum height of the display to the
current height, if a scrollbar is present during resizing and has not been
present during the last resizing. So if this scrollbar disappears (after
resizing it might no longer be needed), the display would have the possibility
to grow, but it does not grow vertically as the maximum height is limited to
the current height.
set_block_size() implies plugin deactivate(), activate() calls
to re-initialize AU and VST plugins. So plugins will reset the
internal state and not immediately respond correctly.
Some plugins zero the output or ramp up internally, leading the analyzer
to show invalid or random/uncorrelated information.
This avoid periodic calls to de/activate()
It conveyed the idea of continuous silencing as long as the transport
is in a stopped state. Make it correctly mean a one-shot reset when the
transport is being stopped.
Don't call ::set_value() if the actual value has not changed.
e.g. MIDI-CC or integer controls. Moving the Bar-controller was able to
create events even though the actual value remained unchanged.
This check has to be done UI-side, since the underlying API is also used
for state-restore and automation. e.g.
"old value" (user-set) may be default "0", "new value" may also be "0" but
libardour still needs to send an event (a synth's internal state may not
default to "0")
Drag a group-tab's right-edge horizontally to the right to remove all
current routes from the groups before adding new routes to the group.
The group becomes temporarily empty, and
Session::route_removed_from_route_group() removes the group (before new
routes can be added).