Code

Respect "relink duplicates clones" setting with linked offsets.
authorKrzysztof Kosiński <tweenk.pl@gmail.com>
Wed, 8 Dec 2010 09:17:25 +0000 (10:17 +0100)
committerKrzysztof Kosiński <tweenk.pl@gmail.com>
Wed, 8 Dec 2010 09:17:25 +0000 (10:17 +0100)
Patch from Adonis Papaderos.

src/selection-chemistry.cpp

index 6786479d6230bda78540ff89461b2c80f323141e..8b917de55ed8201a7da335684856c9962c673fb5 100644 (file)
@@ -415,6 +415,15 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone)
                         g_free(newref);
                     }
                 }
+            } else if (SP_IS_OFFSET(old_clone)) {
+                for (guint j = 0; j < old_ids.size(); j++) {
+                gchar *source_href = SP_OFFSET(old_clone)->sourceHref;
+                    if (source_href && source_href[0]=='#' && !strcmp(source_href+1, old_ids[j])) {
+                        gchar *newref = g_strdup_printf("#%s", new_ids[j]);
+                        doc->getObjectById(new_ids[i])->repr->setAttribute("xlink:href", newref);
+                        g_free(newref);
+                    }
+                }
             }
         }
     }