fix(instrument): stop Ctrl-before-click stealing a waveform mark grab from a coincident node
Ctrl held before mouse-down forced the node/toggle win over a smaller cap or column regardless of area; now it defers to the ordinary smallest-area arbitration like a plain click. Also amends product docs, VERIFICATION.md, and adds sparse-material/narrow-overlay test fixtures.
This commit is contained in:
@@ -286,10 +286,11 @@ void ReaSamplerEditor::dragWaveform(const FaceLayout& fl, int x, int y) {
|
||||
// where the mark was dropped. Pure over the cached mono frames — no host types, no file I/O.
|
||||
// The crossfade handle is exempt: it sets a fade LENGTH, and the whole point of the fade is
|
||||
// that its edges need no zero crossing. Ctrl defeats the snap outright, the same "get out of
|
||||
// the way, I want exactness" role it plays as the knobs' fine drag.
|
||||
// the way, I want exactness" role it plays as the knobs' fine drag. `[verify — DAW]` this
|
||||
// `GetKeyState` read has no test target — nothing in CI observes the defeat actually landing.
|
||||
const std::vector<AudioSample>& pcm = monoPcmFor(selectedId_);
|
||||
if (!pcm.empty() && waveMarker_ != WaveMarker::kCrossfade && !dragModifiers().ctrl) {
|
||||
newFrame = snapToZeroCrossing(pcm.data(), static_cast<std::int64_t>(pcm.size()), newFrame,
|
||||
newFrame = snapToZeroCrossing(pcm.data(), frames, newFrame,
|
||||
zeroCrossingSnapFrames(overlay, frames));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user