static void sp_textpath_update(SPObject *object, SPCtx *ctx, guint flags) { SPTextPath *textpath = SP_TEXTPATH(object); textpath->isUpdating=true; if ( textpath->sourcePath->sourceDirty ) refresh_textpath_source(textpath); textpath->isUpdating=false; if (((SPObjectClass *) textpath_parent_class)->update) ((SPObjectClass *) textpath_parent_class)->update(object, ctx, flags); if (flags & SP_OBJECT_MODIFIED_FLAG) flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; flags &= SP_OBJECT_MODIFIED_CASCADE; SPObject *ochild; for ( ochild = sp_object_first_child(object) ; ochild ; ochild = SP_OBJECT_NEXT(ochild) ) { if ( flags || ( ochild->uflags & SP_OBJECT_MODIFIED_FLAG )) { ochild->updateDisplay(ctx, flags); } } }
void SPTextPath::update(SPCtx *ctx, guint flags) { this->isUpdating = true; if ( this->sourcePath->sourceDirty ) { refresh_textpath_source(this); } this->isUpdating = false; SPItem::update(ctx, flags); if (flags & SP_OBJECT_MODIFIED_FLAG) { flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } flags &= SP_OBJECT_MODIFIED_CASCADE; for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { if ( flags || ( ochild->uflags & SP_OBJECT_MODIFIED_FLAG )) { ochild->updateDisplay(ctx, flags); } } }