From f118b3ab53b032da7e7014bebf6a8f215a11be78 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 11 Jul 2020 23:57:31 -0600 Subject: [PATCH] Canvas: remove dangling cairo path in Arc or ConstraintPacker if fill was requested but not outline --- libs/canvas/arc.cc | 6 +++++- libs/canvas/constraint_packer.cc | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libs/canvas/arc.cc b/libs/canvas/arc.cc index 07420245cc..5beece7ce8 100644 --- a/libs/canvas/arc.cc +++ b/libs/canvas/arc.cc @@ -80,7 +80,11 @@ Arc::render (Rect const & /*area*/, Cairo::RefPtr context) const if (fill()) { setup_fill_context (context); - context->fill_preserve (); + if (outline()) { + context->fill_preserve (); + } else { + context->fill (); + } } if (outline()) { diff --git a/libs/canvas/constraint_packer.cc b/libs/canvas/constraint_packer.cc index d4cb5748aa..c160f5306d 100644 --- a/libs/canvas/constraint_packer.cc +++ b/libs/canvas/constraint_packer.cc @@ -756,7 +756,11 @@ ConstraintPacker::render (Rect const & area, Cairo::RefPtr conte setup_fill_context (context); context->rectangle (draw.x0, draw.y0, draw.width(), draw.height()); - context->fill_preserve (); + if (outline()) { + context->fill_preserve (); + } else { + context->fill (); + } } if (outline()) {