x1, y1, x2, y2 = ccontext:PathExtents()
Contrast with ccontext:FillExtents() and ccontext:StrokeExtents() which return the extents of only the area that would be "inked" by the corresponding drawing operations.
The result of ccontext:PathExtents() is defined as equivalent to the
limit of ccontext:StrokeExtents() with #CAIRO_LINE_CAP_ROUND as the
line width approaches 0.0 (but never reaching the empty-rectangle
returned by ccontext:StrokeExtents() for a line width of 0.0).
Specifically, this means that zero-area sub-paths such as
ccontext:MoveTo();ccontext:LineTo() segments, (even degenerate cases
where the coordinates to both calls are identical), will be
considered as contributing to the extents. However, a lone
ccontext:MoveTo() will not contribute to the results of
ccontext:PathExtents().