diff options
| author | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-06-22 23:17:50 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-06-22 23:17:50 +0000 |
| commit | 0213425c8da0d92a661a5edbd9318cd8c97b10c8 (patch) | |
| tree | cd5c9bd3a996241db0d94886761e8bed2fd6011e /src/sp-lpe-item.cpp | |
| parent | Update to experimental r13404 (diff) | |
| parent | Fix for ungrouping/non-LPEItem masks (diff) | |
| download | inkscape-0213425c8da0d92a661a5edbd9318cd8c97b10c8.tar.gz inkscape-0213425c8da0d92a661a5edbd9318cd8c97b10c8.zip | |
Update to experimental r13407
(bzr r13090.1.85)
Diffstat (limited to 'src/sp-lpe-item.cpp')
| -rw-r--r-- | src/sp-lpe-item.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 22726f236..74eb2af75 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -340,15 +340,22 @@ lpeobject_ref_modified(SPObject */*href*/, guint /*flags*/, SPLPEItem *lpeitem) static void sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) { + g_return_if_fail(lpeitem != NULL); SPMask * mask = lpeitem->mask_ref->getObject(); - if(mask) + + if (mask) { - sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(mask->firstChild())); + if (SPLPEItem* maskChild = dynamic_cast<SPLPEItem*>(mask->firstChild())) { + sp_lpe_item_create_original_path_recursive(maskChild); + } } + SPClipPath * clipPath = lpeitem->clip_ref->getObject(); - if(clipPath) + if (clipPath) { - sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); + if (SPLPEItem* clipChild = dynamic_cast<SPLPEItem*>(clipPath->firstChild())) { + sp_lpe_item_create_original_path_recursive(clipChild); + } } if (SP_IS_GROUP(lpeitem)) { GSList const *item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); @@ -370,15 +377,22 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) static void sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem) { + g_return_if_fail(lpeitem != NULL); SPMask * mask = lpeitem->mask_ref->getObject(); - if(mask) + + if (mask) { - sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(mask->firstChild())); + if (SPLPEItem* maskChild = dynamic_cast<SPLPEItem*>(mask->firstChild())) { + sp_lpe_item_cleanup_original_path_recursive(maskChild); + } } + SPClipPath * clipPath = lpeitem->clip_ref->getObject(); - if(clipPath) + if (clipPath) { - sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); + if (SPLPEItem* clipChild = dynamic_cast<SPLPEItem*>(clipPath->firstChild())) { + sp_lpe_item_cleanup_original_path_recursive(clipChild); + } } if (SP_IS_GROUP(lpeitem)) { |
