diff --git a/app/node/inputdragger.cpp b/app/node/inputdragger.cpp index b6708d326..c0067c4fb 100644 --- a/app/node/inputdragger.cpp +++ b/app/node/inputdragger.cpp @@ -70,10 +70,27 @@ void NodeInputDragger::Start(NodeInput *input, const rational &time, int track) } } -void NodeInputDragger::Drag(const QVariant& value) +void NodeInputDragger::Drag(QVariant value) { Q_ASSERT(input_); + if (!input_->get_property(QStringLiteral("min")).isNull()) { + // Assumes the value is a double of some kind + double min = input_->get_property(QStringLiteral("min")).toDouble(); + double v = value.toDouble(); + if (v < min) { + value = min; + } + } + + if (!input_->get_property(QStringLiteral("max")).isNull()) { + double max = input_->get_property(QStringLiteral("max")).toDouble(); + double v = value.toDouble(); + if (v > max) { + value = max; + } + } + end_value_ = value; //input_->blockSignals(true); diff --git a/app/node/inputdragger.h b/app/node/inputdragger.h index f9f20d490..bd9f80eff 100644 --- a/app/node/inputdragger.h +++ b/app/node/inputdragger.h @@ -34,7 +34,7 @@ public: void Start(NodeInput* input, const rational& time, int track); - void Drag(const QVariant &value); + void Drag(QVariant value); void End();