Code

Fix bug #356743
authordvlierop2 <dvlierop2@users.sourceforge.net>
Tue, 7 Apr 2009 20:43:59 +0000 (20:43 +0000)
committerdvlierop2 <dvlierop2@users.sourceforge.net>
Tue, 7 Apr 2009 20:43:59 +0000 (20:43 +0000)
src/nodepath.cpp
src/object-snapper.cpp

index b92a3bf85a7b2e76268297785906c6559055ffb7..ad230df75645ee1934933a75418cb3d5798a059f 100644 (file)
@@ -1388,7 +1388,7 @@ static void sp_nodepath_selected_nodes_move(Inkscape::NodePath::Path *nodepath,
         }
 
        // Iterate through all selected nodes
-       m.setup(nodepath->desktop, false, SP_PATH(nodepath->item), &unselected_nodes);
+       m.setup(nodepath->desktop, false, nodepath->item, &unselected_nodes);
        for (GList *l = nodepath->selected; l != NULL; l = l->next) {
             Inkscape::NodePath::Node *n = (Inkscape::NodePath::Node *) l->data;
             if (!closest_only || n == closest_node) { //try to snap either all selected nodes or only the closest one
index d47dc86470fe7cd8b27b42edd1564e8b60715174..778928ae75c4fa3ced5562728bc1dd8113bc05a1 100644 (file)
@@ -616,9 +616,10 @@ void Inkscape::ObjectSnapper::freeSnap(SnappedConstraints &sc,
              */
             SPPath *path = NULL;
             if (it != NULL) {
-                g_assert(SP_IS_PATH(*it->begin()));
-                g_assert(it->size() == 1);
-                path = SP_PATH(*it->begin());
+                if (it->size() == 1 && SP_IS_PATH(*it->begin())) {
+                                       path = SP_PATH(*it->begin());
+                } // else: *it->begin() might be a SPGroup, e.g. when editing a LPE of text that has been converted to a group of paths
+                // as reported in bug #356743. In that case we can just ignore it, i.e. not snap to this item
             }
             _snapPaths(sc, t, p, source_type, first_point, unselected_nodes, path);
         } else {