summaryrefslogtreecommitdiffstats
path: root/src/sp-mask.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-03-14 16:37:50 +0000
committerJabiertxof <jtx@jtx.marker.es>2016-03-14 16:37:50 +0000
commitb8d22beef5345210ad27cdc2685083aeae6f8f3b (patch)
treed69b8bfd19d3627a8425a1b265c2abf229b05354 /src/sp-mask.cpp
parentfixes for update to trunk (diff)
parent"Relative to" option for node alignment. (diff)
downloadinkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.tar.gz
inkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.zip
update to trunk
(bzr r13708.1.39)
Diffstat (limited to 'src/sp-mask.cpp')
-rw-r--r--src/sp-mask.cpp41
1 files changed, 15 insertions, 26 deletions
diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp
index f8fb7aff4..3537c7bac 100644
--- a/src/sp-mask.cpp
+++ b/src/sp-mask.cpp
@@ -138,23 +138,18 @@ void SPMask::update(SPCtx* ctx, unsigned int flags) {
flags &= SP_OBJECT_MODIFIED_CASCADE;
- GSList *l = NULL;
- for (SPObject *child = this->firstChild(); child; child = child->getNext()) {
- sp_object_ref(child);
- l = g_slist_prepend (l, child);
+ std::vector<SPObject *> children = this->childList(false);
+ for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();++child) {
+ sp_object_ref(*child);
}
- l = g_slist_reverse (l);
- while (l) {
- SPObject *child = SP_OBJECT(l->data);
- l = g_slist_remove(l, child);
-
- if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
- child->updateDisplay(ctx, flags);
+ for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();++child) {
+ if (flags || ((*child)->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
+ (*child)->updateDisplay(ctx, flags);
}
- sp_object_unref(child);
+ sp_object_unref(*child);
}
for (SPMaskView *v = this->display; v != NULL; v = v->next) {
@@ -177,23 +172,17 @@ void SPMask::modified(unsigned int flags) {
flags &= SP_OBJECT_MODIFIED_CASCADE;
- GSList *l = NULL;
- for (SPObject *child = this->firstChild(); child; child = child->getNext()) {
- sp_object_ref(child);
- l = g_slist_prepend(l, child);
+ std::vector<SPObject *> children = this->childList(false);
+ for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();++child) {
+ sp_object_ref(*child);
}
- l = g_slist_reverse(l);
-
- while (l) {
- SPObject *child = SP_OBJECT(l->data);
- l = g_slist_remove(l, child);
-
- if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
- child->emitModified(flags);
+ for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();++child) {
+ if (flags || ((*child)->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
+ (*child)->emitModified(flags);
}
- sp_object_unref(child);
+ sp_object_unref(*child);
}
}
@@ -221,7 +210,7 @@ sp_mask_create (std::vector<Inkscape::XML::Node*> &reprs, SPDocument *document,
const gchar *mask_id = repr->attribute("id");
SPObject *mask_object = document->getObjectById(mask_id);
- for (std::vector<Inkscape::XML::Node*>::const_iterator it = reprs.begin(); it != reprs.end(); it++) {
+ for (std::vector<Inkscape::XML::Node*>::const_iterator it = reprs.begin(); it != reprs.end(); ++it) {
Inkscape::XML::Node *node = (*it);
SPItem *item = SP_ITEM(mask_object->appendChildRepr(node));