fix: restore waveform symmetry about the midline, cut deck_values' link to the bank model, and unit-test the column arithmetic
The waveform column's vertical extents move to pure component_geometry so the shared primitive stops being untested; PlaySeconds hoists into a header-only play_seconds target.
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#ifdef _WIN32
|
||||
|
||||
#include "core/instrument/ui/keyboard_strip.h" // keyAtPoint / resolveDragNote (root key)
|
||||
#include "core/instrument/ui/knob_deck.h" // inKnobFace (the shared reset target rule)
|
||||
#include "shell/instrument/editor_internal.h"
|
||||
#include "shell/instrument/reasampler_processor.h"
|
||||
|
||||
@@ -82,11 +83,10 @@ bool ReaSamplerEditor::mouseDownChrome(const FaceLayout& fl, int x, int y) {
|
||||
|
||||
bool ReaSamplerEditor::doubleClickChrome(const FaceLayout& fl, int x, int y) {
|
||||
// The preview-velocity dial answers the same reset gesture the deck's knobs do — it is a
|
||||
// radial knob drawn by the same primitive, so a user who learns the gesture there expects
|
||||
// it here. Resolved against the whole cell, not the circle: the cell IS the knob's target
|
||||
// on this surface (there is no neighbouring control to steal from).
|
||||
// radial knob drawn by the same primitive, so it resolves through the same target rule
|
||||
// (inKnobFace), against the drawn circle rather than the cell's label band.
|
||||
if (selectedId_.empty() || !processor_) return false;
|
||||
if (!contains(fl.chrome.velCell, x, y)) return false;
|
||||
if (!inKnobFace(fl.chrome.velKnob, x, y)) return false;
|
||||
processor_->setPreviewVelocity(kPreviewVelocityDefault);
|
||||
invalidate();
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user