mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-08 05:38:02 +02:00
no more has_clip boolean. Init clip_level. (_cairo_surface_intersect_clip_path): a NULL path means reset of clipping region, not back to previous clipping level.
This commit is contained in:
parent
23e5e55841
commit
71369489d8
2 changed files with 15 additions and 8 deletions
11
ChangeLog
11
ChangeLog
|
|
@ -1,7 +1,14 @@
|
|||
2005-12-30 Emmanuel Pacaud <emmanuel.pacaud@free.fr>
|
||||
|
||||
* src/cairo-svg-surface.c (_cairo_svg_surface_create_for_document): no
|
||||
more has_clip boolean. Init clip_level.
|
||||
(_cairo_surface_intersect_clip_path): a NULL path means reset of
|
||||
clipping region, not back to previous clipping level.
|
||||
|
||||
2005-12-28 Emmanuel Pacaud <emmanuel.pacaud@free.fr>
|
||||
|
||||
* _cairo_svg_document_create: namespace declarations for SVG and XLINK
|
||||
(#5411).
|
||||
* src/cairo-svg-surface.c (_cairo_svg_document_create): namespace
|
||||
declarations for SVG and XLINK (#5411).
|
||||
|
||||
2005-12-27 Christian Biesinger <cbiesinger@web.de>
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ struct cairo_svg_surface {
|
|||
|
||||
xmlNodePtr xml_node;
|
||||
|
||||
cairo_bool_t has_clip;
|
||||
unsigned int clip_level;
|
||||
};
|
||||
|
||||
static cairo_svg_document_t *
|
||||
|
|
@ -194,7 +194,7 @@ _cairo_svg_surface_create_for_document (cairo_svg_document_t *document,
|
|||
_cairo_svg_document_reference (document);
|
||||
surface->document = document;
|
||||
|
||||
surface->has_clip = FALSE;
|
||||
surface->clip_level = 0;
|
||||
|
||||
surface->id = document->surface_id++;
|
||||
clip_id = document->clip_id++;
|
||||
|
|
@ -1303,14 +1303,13 @@ _cairo_svg_surface_intersect_clip_path (void *dst,
|
|||
char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN];
|
||||
|
||||
if (path == NULL) {
|
||||
if (surface->has_clip)
|
||||
while (surface->clip_level > 0) {
|
||||
surface->xml_node = surface->xml_node->parent;
|
||||
surface->has_clip = FALSE;
|
||||
surface->clip_level--;
|
||||
}
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
surface->has_clip = TRUE;
|
||||
|
||||
if (path != NULL) {
|
||||
info.document = document;
|
||||
info.has_current_point = FALSE;
|
||||
|
|
@ -1340,6 +1339,7 @@ _cairo_svg_surface_intersect_clip_path (void *dst,
|
|||
|
||||
document->clip_id++;
|
||||
surface->xml_node = group;
|
||||
surface->clip_level++;
|
||||
}
|
||||
|
||||
return status;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue