void DrawingText::_clipItem(DrawingContext &ct, Geom::IntRect const &/*area*/) { Inkscape::DrawingContext::Save save(ct); // handle clip-rule if (_style) { if (_style->clip_rule.computed == SP_WIND_RULE_EVENODD) { ct.setFillRule(CAIRO_FILL_RULE_EVEN_ODD); } else { ct.setFillRule(CAIRO_FILL_RULE_WINDING); } } for (ChildrenList::iterator i = _children.begin(); i != _children.end(); ++i) { DrawingGlyphs *g = dynamic_cast<DrawingGlyphs *>(&*i); if (!g) { throw InvalidItemException(); } Inkscape::DrawingContext::Save save(ct); ct.transform(g->_ctm); ct.path(*g->_font->PathVector(g->_glyph)); } ct.fill(); }