-
Federico Mena Quintero authored
(#823) correctly points out that commit e3bb911b broke geometry computation. I didn't see how it could, since it didn't even have to do with extracting bounding boxes from elements. It turns out that I forgot to copy the DrawingCtx.drawsub_stack for the nested context. So, for an SVG with structure a b c -> with isolation context (due to non-100% opacity / etc.) d e f id="draw_only_this_one" g if one calls geometry_for_layer("draw_only_this_one"), draw_tree() would properly create a drawsub_stack like (a b c f), but then the nested rendering would go: stack_top=a stack_top=b stack_top=c (creates isolation context, and a nested DrawingCtx) stack_top=empty (nested DrawingCtx has an empty drawsub_stack) -> draw every child of c since there's no drawsub_stack to limit it, instead of just drawing f in there. GNOME/librsvg#823 Part-of: <GNOME/librsvg!697>
44927afa