=== modified file 'src/live_effects/effect.cpp' --- src/live_effects/effect.cpp 2016-05-08 23:33:44 +0000 +++ src/live_effects/effect.cpp 2016-06-10 10:12:32 +0000 @@ -714,6 +714,7 @@ { Glib::ustring stringkey(key); + if (param_vector.empty()) return NULL; std::vector::iterator it = param_vector.begin(); while (it != param_vector.end()) { Parameter * param = *it; === modified file 'src/live_effects/parameter/path.cpp' --- src/live_effects/parameter/path.cpp 2016-03-18 17:34:07 +0000 +++ src/live_effects/parameter/path.cpp 2016-06-10 12:47:11 +0000 @@ -73,7 +73,21 @@ PathParam::~PathParam() { remove_link(); - + using namespace Inkscape::UI; + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if (desktop) { + if (tools_isactive(desktop, TOOLS_NODES)) { + SPItem * item = SP_ACTIVE_DESKTOP->getSelection()->singleItem(); + if (item != NULL) { + Inkscape::UI::Tools::NodeTool *nt = static_cast(desktop->event_context); + std::set shapes; + ShapeRecord r; + r.item = item; + shapes.insert(r); + nt->_multipath->setItems(shapes); + } + } + } g_free(defvalue); } @@ -220,6 +234,7 @@ r.role = SHAPE_ROLE_LPE_PARAM; r.edit_transform = item->i2dt_affine(); // TODO is it right? + r.edit_transform *= item->transform.inverse(); if (!href) { r.item = reinterpret_cast(param_effect->getLPEObj()); r.lpe_key = param_key; @@ -436,7 +451,8 @@ if (item != NULL) { Geom::PathVector path_clipboard = sp_svg_read_pathv(svgd); path_clipboard *= item->i2doc_affine().inverse(); - svgd = sp_svg_write_path( path_clipboard ); + path_clipboard *= Geom::Translate(_pathvector.initialPoint()); + svgd = sp_svg_write_path( path_clipboard ); } param_write_to_repr(svgd);