Paul Davis
d6a74c4d96
add API to FloatingTextEntry to force delete-on-focus-out
2025-07-09 21:57:40 -06:00
Paul Davis
5b56cef0a7
make ripple-after-trim-back do the right thing
2025-07-09 18:32:45 -06:00
Paul Davis
2d21391c66
remove incorrect copy-pasted comment
2025-07-09 17:21:12 -06:00
Paul Davis
2def30bda5
Editor::trim_region_front/end should obey ripple mode
2025-07-09 17:02:11 -06:00
Paul Davis
74a0272c50
Editor/EditingContext get proxyimplementations of HistoryOwner::add_commands()
2025-07-09 17:01:22 -06:00
Paul Davis
4bbd1afc98
MidiView: add _on_timeline to help clarify semantics of _show_source
...
This also fixes where the ghost note in draw mode shows up
2025-07-09 16:02:31 -06:00
Paul Davis
01c57acfac
remove now unused PianoRollHeaderBase::event_transform() method
2025-07-09 10:54:41 -06:00
Paul Davis
12d6a93fb7
fix incorrect sensitivity of automation acts at session load
...
Session skipped EditingContext::set_sensitive() by calling too far back up its
inheritance tree.
2025-07-09 10:53:00 -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
5801716a78
fix MidiViewBackground keeping track of data note range
2025-07-08 17:59:57 -06:00
Paul Davis
a5bfa387b2
remove methods that inadvertently ended up in ccbe30e48
2025-07-07 17:01:56 -06:00
Paul Davis
6d8e45df57
make Escape only clear note selection when internal editing/in pianoroll
2025-07-07 16:21:52 -06:00
Paul Davis
ccbe30e48f
make note selection from kbd header work in pianorolls
2025-07-07 16:21:52 -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
Robin Gareus
99c1f50a72
Really remove gtk+ option (see also 1e28ee9cc9)
...
After patching gtk/ytk to add touch support and macOS rendering,
upstream gtk+2 is no longer an option
2025-07-06 15:20:20 +02:00
Paul Davis
ea4616913c
cocoa: experimentally, redraw entire window after deminimization
2025-07-05 08:34:08 -06:00
Paul Davis
24343ba7f9
provide proxy APIs for MidiView "show_source" and use it in pianoroll
2025-07-04 12:22:55 -06:00
Paul Davis
25b1057e7d
fix computation of maximum zoom for an editing context
...
it must take the max_extents_scale() value into consideration.
2025-07-04 12:22:10 -06:00
Paul Davis
0ca8b26af7
minor code simplification
2025-07-03 22:00:33 -06:00
Paul Davis
562765ba76
minor fix for determining if we can compute zoom level in pianoroll
2025-07-03 21:57:26 -06:00
Paul Davis
5767c8f62e
better handling of MidiView::apply_note_range()
...
In particular, keep the MidiViewBackground's sense of the data range intact,
use MidiModel::{highest,lowest}_note(), center ranges that don't fit
on the data range
2025-07-01 17:31:42 -06:00
Paul Davis
6a4f4e4710
rework NoteDrag::total_dy() to correctly clamp y to within the required range
2025-07-01 17:31:42 -06:00
Robin Gareus
846253533f
Port-Matrix: use cached nchannels
...
This surprisingly significantly speeds up rendering of large matrices.
20sec instead of 43sec for a 512x512 matrix on a i7-10610U
2025-07-01 17:46:17 +02:00
Robin Gareus
a0ba6e3dfb
Cache BundleChannel nchannels, allow lock-free calls
2025-07-01 17:46:17 +02:00
Robin Gareus
9897074fcc
Micro-optimization: speed up connection-matrix rendering
...
Bundle::type_channel_to_overall() takes a mutex and
iterates over all ports. With a large number of channels
in a bundle this. This reduces complexity from O(2N^2) to O(N^2)
2025-07-01 17:46:17 +02: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
69efb81922
fix drawing coordinate translation for Pianoroll's header
2025-06-30 18:19:28 -06:00
Paul Davis
e2a6b81320
remove incorrect comment
2025-06-30 18:19:04 -06:00
Paul Davis
baf41a65c3
some incremental improvements in scroomer behavior
...
Notably dbl-click works consistently/reliably
2025-06-30 09:39:51 -06:00
Paul Davis
87b50a4ecd
use method instead of a direct call, to centralize logic
2025-06-28 22:45:08 -06:00
Paul Davis
ad6b6f1e30
desensitize automation keybindings after session is set, to avoid them being active by default
...
ARDOUR_UI sets all session-sensitive actions to sensitive at session load
2025-06-28 22:44:41 -06:00
Paul Davis
a2c8203a19
use new ArdourDropdown API to build two of the midi draw menus
2025-06-25 22:18:15 -06:00
Paul Davis
02abf956d7
a better way to build ArdourDropdowns from Actions
2025-06-25 22:17:53 -06:00
Paul Davis
bdf9dec411
pianoroll: if invisible, defer (expensive) ::set_region() till shown
2025-06-24 19:17:47 -06:00
Paul Davis
1fbd7c7124
when selecting a due to note selection, do not keep changing the selection
...
the code was first clearing the entire Editor selection before adding
the region, causing every note selection to trigger the RegionsChanged
pathway. This is crazy expensive for some reason (more than 8.12) and that
should be investigated, but the logic is also wrong. Selecting a region that is
alrready the sole selected region should not cause any action at all.
2025-06-24 18:11:13 -06:00
Paul Davis
0c876d7c44
remove use of POINTER_MOTION_HINT_MASK in PianoKeyboard
...
We want to receive *all* motion events for accurate note tracking.
2025-06-24 18:05:22 -06:00
Paul Davis
2c9e42b2ab
NO-OP: braces, please
2025-06-24 18:05:02 -06:00
Paul Davis
5f9f754946
NO-OP: remove debug output
2025-06-24 18:04:37 -06:00
Paul Davis
567c0e09b8
NO-OP: remove out of date comment
2025-06-24 17:58:08 -06:00
Paul Davis
5e402aa0f9
NO_OP: better code styling
2025-06-24 17:57:47 -06:00
Paul Davis
7cf90f0f54
NO-OP: spaces, please
2025-06-24 17:57:17 -06:00
Paul Davis
e448c3f4aa
allow pianorolls not to show MIDI channel selector/dropdown
...
pianorolls have the visibility channel control. at some point we want the same idea
for the timeline, but it is not there yet
2025-06-23 16:16:12 -06:00
Paul Davis
a17cf3929d
NOOP: whitespace around operators
2025-06-23 16:15:36 -06:00
Paul Davis
bce06b4c07
add region align actions to menus, to aid discovery
2025-06-22 08:06:12 -06:00
Robin Gareus
0bd6c9d39f
Exclusive solo may select track
...
The idea is to show the selected route on the bottom panel
(focus channel) so that one can edit the channel strip settings
of what one hears (currently only useful in Mixbus).
2025-06-20 18:22:52 +02:00
Robin Gareus
e1fc24723a
NO-OP: whitespace
2025-06-19 23:16:30 +02:00
Robin Gareus
521227afe8
Panes should prelight like other widgets (brighter not darker)
2025-06-19 23:16:16 +02:00
Robin Gareus
4100279812
NO-OP: Remove extra parentheses
2025-06-19 22:09:18 +02:00
Paul Davis
66a8776f98
fix InternalSend (and InterntalReturn) to allow fade out/MIDI mute
...
previously, as soon as the Send is disabled, it would short-circuit ::run(),
preventing the fade to zero to take effect. Now, the send will run until the
effective gain reaches zero, and the return will collect data from it until it
is fully deactivated.
2025-06-19 13:50:37 -06:00
Paul Davis
464ea0d31f
fix Amp to send MIDI mute when the gain control is set to zero
...
Do not send MIDI mute from ::apply_gain(), which is too general and can end up
resending MIDI mute messages when the owner is muted.
2025-06-19 13:38:39 -06:00