Logo Search packages:      
Sourcecode: inkscape version File versions  Download package

static void sp_canvas_item_invoke_update ( SPCanvasItem item,
Geom::Matrix const &  affine,
unsigned int  flags 
) [static]

Helper function to update item and its children.

NB! affine is parent2canvas.

Definition at line 289 of file sp-canvas.cpp.

Referenced by do_update(), paint(), and sp_canvas_group_update().

{
    /* Apply the child item's transform */
    Geom::Matrix child_affine = item->xform * affine;

    /* apply object flags to child flags */
    int child_flags = flags & ~SP_CANVAS_UPDATE_REQUESTED;

    if (item->flags & SP_CANVAS_ITEM_NEED_UPDATE)
        child_flags |= SP_CANVAS_UPDATE_REQUESTED;

    if (item->flags & SP_CANVAS_ITEM_NEED_AFFINE)
        child_flags |= SP_CANVAS_UPDATE_AFFINE;

    if (child_flags & (SP_CANVAS_UPDATE_REQUESTED | SP_CANVAS_UPDATE_AFFINE)) {
        if (SP_CANVAS_ITEM_GET_CLASS (item)->update)
            SP_CANVAS_ITEM_GET_CLASS (item)->update (item, child_affine, child_flags);
    }

    GTK_OBJECT_UNSET_FLAGS (item, SP_CANVAS_ITEM_NEED_UPDATE);
    GTK_OBJECT_UNSET_FLAGS (item, SP_CANVAS_ITEM_NEED_AFFINE);
}

Here is the caller graph for this function:


Generated by  Doxygen 1.6.0   Back to index