Search scroll groups for event delivery from top to bottom rather than bottom
to top. Overlapping scroll groups still aren't properly supported by the
canvas, but currently all we care about is that the top one gets the event, so
the hscroll group (tempo lines) can be below the hvscroll group (tracks), but
the latter gets events.
This reverts commit 03f0229bcf.
Mitigate the fallout from said overly aggressive revert: preserve the alpha
values to not break the color configuration for when the lines are fixed.
This reverts commit 780c1762 and e70c9a3
Both combined introduced various bugs:
* rubberband-selection has a scroll-offset
* region drag/drop has wrong y-offset
* ranges (loop etc) are above the playhead
* possible scroll performance hit (long unclipped
lines in h_scroll_group)
on the downside: time-grid is now no longer visible behind
the rulers. Doing that will require a different approach…
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
These changes are MSVC specific and shouldn't affect the other builds.
(incidentally, libpbd already offers a function called 'fast_log2()'. Not sure if that could have been used instead...)
LTC-slave: offset the parsed LTC-frame instead of changing the
frame's timestamp. This fixes an issue with freewheel timeout and
delta-calculation. Align transport-time with output to match
capture alignment: "with existing material".
LTC-generator: follow suit. align clock with master-bus out.
This is a semi-permanent workaround. Once [tracks feeding] the
master-bus is/are delayed to align to output. The generator
needs to use (worst_track_latency not worst_playback_latency)
This reverts commit d00e035fe0.
..which introduced a bug.
Meter count and type may change when switching the meter point or simply
when selecting a different track in the editor-mixer. Additional meters
were not unpacked and remained on canvas.
Ideally we'd just remove the excess meters or meters where the type
changed, but that's far more complex than just repacking them all.
I am not sure if this is correct, but since the name in the bindings didn't
match that in keyboard.cc, the modifier was just ignored, which results in
conflicting bindings and consequent bugs.
"Meta" seems to be the name for this thing (oddly, to me), so I chose that,
though since my window manager steals this key (as basically all the standard
ones do these days) I can't tell if these bindings actually work with the
desired key.
The reasonable value 1 tick doesn't seem to work here, presumably it gets lost
in rounding conversion somewhere. Instead use a really small power of two
reciprocal. Once we use actual beats and ticks we can fix this to be a minimum
of one tick (the actual minimum length for a note).
The previous colours made low velocity notes almost invisible. This fixes that
and attempts meter-like colours where yellowish is high, but without going all
the way into red for a generally consistent range of colors.
General ideas: audio is blueish, MIDI is greenish, automation track colour is a
slightly darker version of its parent track colour, canvas base is the same as
the Gtk base.