Paul Davis
e2e9ad173b
pianoroll header: clean up left over use of evy as ev->y
...
This dated to when it was thought that we needed a transform for the event
y coordinate, which was incorrect.
2025-11-03 12:28:13 -07:00
Robin Gareus
33f1681c76
Fix scrommer handle drags
...
Previously this could get stuck at max zoom level
when note_height was >= max_note_height
2025-11-03 00:26:13 +01:00
Paul Davis
f12c328b63
avoid unintended note highlighting in MIDI pianoroll header
2025-11-02 14:24:52 -07:00
Paul Davis
6836c93f21
only switch pianroll to UserRange after a drag actually changed things
2025-10-09 16:25:01 -06:00
Paul Davis
df564f132b
new pianoroll note range enum, denoting "user selected range"
2025-10-09 16:25:01 -06:00
Paul Davis
ee6356d9df
remove crashing assert() when rendering scroomer
...
Too hard to get a floating point assert correct, but I think this is still a little
incorrect because we do not scale the kbd size when rendering it.
2025-08-19 10:53:06 -06:00
Paul Davis
cf14fe75f2
add some debugging info to help diagnose a crash
2025-08-16 12:01:20 -06:00
Paul Davis
ea4737079d
region tempo and meter are optional (gui)
2025-08-10 07:55:39 -06:00
Paul Davis
0811ad2a3a
NO-OP: no double semicolons
2025-08-06 11:14:58 -06:00
Paul Davis
f09ed269d0
use correct default scroomer size in initializer
...
this really has no effect but it's more consistent.
2025-08-06 11:12:38 -06:00
Paul Davis
ffa0e3547b
pianoroll header: parametize kbd width and use when rendering
2025-08-06 11:11:39 -06:00
Paul Davis
298df2029b
remove unused variable
2025-07-30 15:28:46 -06:00
Paul Davis
b93a61998d
fix arithmetic/offset when determining if mouse is inside scroomer
2025-07-11 23:03:31 -06:00
Paul Davis
b5dada592d
remove unused variable
2025-07-10 23:22:55 -06:00
Paul Davis
2b008400c7
do not double-transform event coords for piano roll headers
...
the canvas PRH alreadys transforms event coordinates before deliverying the event
to a handler; the non-canvas version always gets item-centric coordinates from
the GUI toolkit
2025-07-09 10:21:00 -06:00
Paul Davis
d847266cd5
more work on scroomer behavior, close to as intended but still a little bit meh
2025-07-07 16:21:52 -06:00
Paul Davis
d9fda4ce7a
click on pianoroll header note always does selection, no modifiers or middle button required
...
Plus minor related code cleanups
2025-06-30 18:20:21 -06:00
Paul Davis
73f4378a51
more adjustments to scroomer drag logic
...
1. use an idle callback
2. MidiViewBackground::apply_note_range() now returns true/false
depending on whether or not it was able to make the requested change.
It might fail due to out of bounds note line size, for example.
2025-06-16 23:01:10 -06:00
Paul Davis
f48fe3f740
numerous fix ups to the behavior of button presses in any pianoroll header
2025-06-13 17:20:09 -06:00
Paul Davis
5208fdce2c
the continuing saga of MIDI note line geometry and the scroomer
2025-06-10 12:28:33 -06:00
Paul Davis
06593d1a79
pianoroll note labelling: pixel pushing, crash prevent, theme utilization for fonts
2025-06-03 23:17:53 -06:00
Paul Davis
024dedc446
pianoroll: clarify and resolve some issues caused by confusion over what type the _view member has
2025-06-03 12:14:21 -06:00
Paul Davis
e23fdd5b8c
horrific hack to deal with pianoroll header (widget) single pixel misalignment currently not understood
2025-06-03 11:34:21 -06:00
Paul Davis
362672ac34
single pixel line, in themed "black" color, to divide B/C and E/F on piano roll header
2025-06-03 11:33:48 -06:00
Paul Davis
48dde40b4f
share piano roll header across both GTK widget and Canvas item implementations
...
This also uses the new API exposed by MidiViewBackground so that the header simply re-uses
the same exact position & height values computed by the background for its note lines.
PianoRollHeaderBase is the base class with the shared implementation.
PianoRollHeader is the GTK widget derived class.
ArdourCanvas::PianoRollHeader is the canvas item derived class.
Both PianoRollHeader implementations have to implement various methods that gloss
over the differences between drawing and event handling in a GTK widget context
or in a canvas item context
2025-06-02 19:53:34 -06:00