summaryrefslogtreecommitdiffstats
path: root/src/sp-lpe-item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-lpe-item.cpp')
-rw-r--r--src/sp-lpe-item.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp
index 4719f98d0..d83593b31 100644
--- a/src/sp-lpe-item.cpp
+++ b/src/sp-lpe-item.cpp
@@ -337,10 +337,10 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem)
{
sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(mask->firstChild()));
}
- SPClipPath * clipPath = lpeitem->clip_ref->getObject();
- if(clipPath)
+ SPClipPath * clip_path = lpeitem->clip_ref->getObject();
+ if(clip_path)
{
- sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild()));
+ sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(clip_path->firstChild()));
}
if (SP_IS_GROUP(lpeitem)) {
std::vector<SPItem*> item_list = sp_item_group_item_list(SP_GROUP(lpeitem));
@@ -371,10 +371,10 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem)
{
sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(mask->firstChild()));
}
- SPClipPath * clipPath = lpeitem->clip_ref->getObject();
- if(clipPath)
+ SPClipPath * clip_path = lpeitem->clip_ref->getObject();
+ if(clip_path)
{
- sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild()));
+ sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clip_path->firstChild()));
}
}
std::vector<SPItem*> item_list = sp_item_group_item_list(SP_GROUP(lpeitem));
@@ -393,10 +393,10 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem)
{
sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(mask->firstChild()));
}
- SPClipPath * clipPath = lpeitem->clip_ref->getObject();
- if(clipPath)
+ SPClipPath * clip_path = lpeitem->clip_ref->getObject();
+ if(clip_path)
{
- sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild()));
+ sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clip_path->firstChild()));
}
repr->setAttribute("d", repr->attribute("inkscape:original-d"));
repr->setAttribute("inkscape:original-d", NULL);
@@ -628,10 +628,13 @@ bool SPLPEItem::hasPathEffectRecursive() const
void
SPLPEItem::apply_to_clippath(SPItem *item)
{
- SPClipPath *clipPath = item->clip_ref->getObject();
- if(clipPath) {
- SPObject * clip_data = clipPath->firstChild();
- apply_to_clip_or_mask(SP_ITEM(clip_data), item);
+ SPClipPath *clip_path = item->clip_ref->getObject();
+ if(clip_path) {
+ std::vector<SPObject*> clip_path_list = clip_path->childList(true);
+ for ( std::vector<SPObject*>::const_iterator iter=clip_path_list.begin();iter!=clip_path_list.end();++iter) {
+ SPObject * clip_data = *iter;
+ apply_to_clip_or_mask(SP_ITEM(clip_data), item);
+ }
}
if(SP_IS_GROUP(item)){
std::vector<SPItem*> item_list = sp_item_group_item_list(SP_GROUP(item));
@@ -647,8 +650,11 @@ SPLPEItem::apply_to_mask(SPItem *item)
{
SPMask *mask = item->mask_ref->getObject();
if(mask) {
- SPObject *mask_data = mask->firstChild();
- apply_to_clip_or_mask(SP_ITEM(mask_data), item);
+ std::vector<SPObject*> mask_list = mask->childList(true);
+ for ( std::vector<SPObject*>::const_iterator iter=mask_list.begin();iter!=mask_list.end();++iter) {
+ SPObject * mask_data = *iter;
+ apply_to_clip_or_mask(SP_ITEM(mask_data), item);
+ }
}
if(SP_IS_GROUP(item)){
std::vector<SPItem*> item_list = sp_item_group_item_list(SP_GROUP(item));