diff --git a/include/app.hpp b/include/app.hpp index 18eab8a0..a4d3083d 100644 --- a/include/app.hpp +++ b/include/app.hpp @@ -23,7 +23,6 @@ struct SVGPanel; // A 1U module should be 15x380. Thus the width of a module should be a factor of 15. #define RACK_GRID_WIDTH 15 #define RACK_GRID_HEIGHT 380 -#define KNOB_SENSITIVITY 0.0015 static const Vec RACK_GRID_SIZE = Vec(15, 380); @@ -201,7 +200,7 @@ struct Knob : ParamWidget { /** Snap to nearest integer while dragging */ bool snap = false; float dragValue; - float sensitivity = KNOB_SENSITIVITY; + float sensitivity = 0.0; void onDragStart(EventDragStart &e) override; void onDragMove(EventDragMove &e) override; void onDragEnd(EventDragEnd &e) override; diff --git a/src/app/Knob.cpp b/src/app/Knob.cpp index ae8d4bb2..6305a73d 100644 --- a/src/app/Knob.cpp +++ b/src/app/Knob.cpp @@ -4,9 +4,9 @@ // For GLFW_KEY_LEFT_CONTROL, etc. #include - namespace rack { +#define KNOB_SENSITIVITY 0.0015 void Knob::onDragStart(EventDragStart &e) { @@ -16,8 +16,12 @@ void Knob::onDragStart(EventDragStart &e) { } void Knob::onDragMove(EventDragMove &e) { + float sens = sensitivity; + if (sens == 0.f) { + sens = KNOB_SENSITIVITY; + } // Drag slower if Mod - float delta = sensitivity * (maxValue - minValue) * -e.mouseRel.y; + float delta = sens * (maxValue - minValue) * -e.mouseRel.y; if (guiIsModPressed()) delta /= 16.0; dragValue += delta;