summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/Port.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp
index 752501a7..3e021840 100644
--- a/src/gui/Port.cpp
+++ b/src/gui/Port.cpp
@@ -147,15 +147,18 @@ Port::on_value_changed(const Glib::VariantBase& value)
const Glib::Variant<double>& fvalue = Glib::VariantBase::cast_dynamic
< Glib::Variant<double> >(value);
- const float fval = fvalue.get();
- Ingen::Shared::World* const world = _app.world();
- _app.engine()->set_property(model()->path(),
- world->uris()->ingen_value,
- _app.forge().make(fval));
+
+ const Raul::Atom atom = _app.forge().make((float)fvalue.get());
+ if (atom != model()->value()) {
+ Ingen::Shared::World* const world = _app.world();
+ _app.engine()->set_property(model()->path(),
+ world->uris()->ingen_value,
+ atom);
+ }
PatchBox* box = get_patch_box();
if (box) {
- box->show_port_status(model().get(), _app.forge().make(fval));
+ box->show_port_status(model().get(), atom);
}
}