Code

Fix some of the LPE issues.
authorKrzysztof Kosiński <tweenk.pl@gmail.com>
Fri, 22 Jan 2010 10:54:17 +0000 (11:54 +0100)
committerKrzysztof Kosiński <tweenk.pl@gmail.com>
Fri, 22 Jan 2010 10:54:17 +0000 (11:54 +0100)
src/live_effects/parameter/path.cpp
src/ui/tool/node-tool.cpp

index 1ea9ac506869e0faef6bfa6753575ed64b68f9e6..94540a25523325831e6a88be3846cf2db8b0f25a 100644 (file)
@@ -195,7 +195,7 @@ PathParam::param_newWidget(Gtk::Tooltips * tooltips)
 }
 
 void
-PathParam::param_editOncanvas(SPItem * /*item*/, SPDesktop * dt)
+PathParam::param_editOncanvas(SPItem *item, SPDesktop * dt)
 {
     using namespace Inkscape::UI;
 
@@ -209,7 +209,7 @@ PathParam::param_editOncanvas(SPItem * /*item*/, SPDesktop * dt)
     ShapeRecord r;
 
     r.role = SHAPE_ROLE_LPE_PARAM;
-    r.edit_transform = Geom::identity(); // TODO this is almost certainly wrong
+    r.edit_transform = sp_item_i2d_affine(item); // TODO is it right?
     if (!href) {
         r.item = reinterpret_cast<SPItem*>(param_effect->getLPEObj());
         r.lpe_key = param_key;
index 092ce7d872e48da70dca6dd3aad1d83e5f9fbbbd..08d893855e99715026bee88203ab1ac34295f798 100644 (file)
@@ -377,10 +377,6 @@ void gather_items(InkNodeTool *nt, SPItem *base, SPObject *obj, Inkscape::UI::Sh
     }
 }
 
-struct IsPath {
-    bool operator()(SPItem *i) const { return SP_IS_PATH(i); }
-};
-
 void ink_node_tool_selection_changed(InkNodeTool *nt, Inkscape::Selection *sel)
 {
     using namespace Inkscape::UI;
@@ -401,7 +397,9 @@ void ink_node_tool_selection_changed(InkNodeTool *nt, Inkscape::Selection *sel)
     bool something_set = false;
     for (std::set<ShapeRecord>::iterator i = shapes.begin(); i != shapes.end(); ++i) {
         ShapeRecord const &r = *i;
-        if (SP_IS_SHAPE(r.item) && !SP_IS_PATH(r.item)) {
+        if (SP_IS_SHAPE(r.item) ||
+            (SP_IS_PATH(r.item) && r.item->repr->attribute("inkscape:original-d") != NULL))
+        {
             nt->shape_editor->set_item(r.item, SH_KNOTHOLDER);
             something_set = true;
             break;