summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-09-08 22:48:30 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-09-08 22:48:30 +0000
commit2c2ba3e0fe8c030229114e38aeadf8cf60acca75 (patch)
treebe36081e582b3586967a2fa33da38dba740e7c9f /src
parentFix for bug 179842 (diff)
downloadinkscape-2c2ba3e0fe8c030229114e38aeadf8cf60acca75.tar.gz
inkscape-2c2ba3e0fe8c030229114e38aeadf8cf60acca75.zip
Better fix for bug 1492711
Fixed bugs: - https://launchpad.net/bugs/1492711 (bzr r14353)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/parameter/parameter.cpp12
-rw-r--r--src/live_effects/parameter/parameter.h3
2 files changed, 12 insertions, 3 deletions
diff --git a/src/live_effects/parameter/parameter.cpp b/src/live_effects/parameter/parameter.cpp
index 70adc3084..64464f200 100644
--- a/src/live_effects/parameter/parameter.cpp
+++ b/src/live_effects/parameter/parameter.cpp
@@ -41,8 +41,6 @@ void
Parameter::param_write_to_repr(const char * svgd)
{
param_effect->getRepr()->setAttribute(param_key.c_str(), svgd);
- DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT,
- _("Updated value to scalar parameter"));
}
void Parameter::write_to_SVG(void)
@@ -73,6 +71,7 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
ScalarParam::~ScalarParam()
{
+ _value_changed_connection.disconnect();
}
bool
@@ -146,6 +145,13 @@ ScalarParam::param_make_integer(bool yes)
inc_page = 10;
}
+void
+ScalarParam::on_value_changed()
+{
+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT,
+ _("Change scalar parameter"));
+}
+
Gtk::Widget *
ScalarParam::param_newWidget()
{
@@ -162,7 +168,7 @@ ScalarParam::param_newWidget()
}
rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
-
+ _value_changed_connection = rsu->signal_value_changed().connect (sigc::mem_fun (*this, &ScalarParam::on_value_changed));
return dynamic_cast<Gtk::Widget *> (rsu);
}
diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h
index cc2c4f3d6..c24033c42 100644
--- a/src/live_effects/parameter/parameter.h
+++ b/src/live_effects/parameter/parameter.h
@@ -12,6 +12,7 @@
#include <glibmm/ustring.h>
#include <2geom/forward.h>
#include <2geom/pathvector.h>
+#include <sigc++/sigc++.h>
// In gtk2, this wasn't an issue; we could toss around
// G_MAXDOUBLE and not worry about size allocations. But
@@ -111,6 +112,7 @@ public:
virtual void param_set_default();
void param_set_value(gdouble val);
void param_make_integer(bool yes = true);
+ void on_value_changed();
void param_set_range(gdouble min, gdouble max);
void param_set_digits(unsigned digits);
void param_set_increments(double step, double page);
@@ -122,6 +124,7 @@ public:
inline operator gdouble() const { return value; };
protected:
+ sigc::connection _value_changed_connection;
gdouble value;
gdouble min;
gdouble max;