diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index 40e121cb95..1c46b3af86 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -388,22 +388,38 @@ RENDERER_HANDLER(path_fill_evenodd) RENDERER_HANDLER(path_fill_stroke_nonzero) { + begin_path_paint(); if (state().stroke_style.has>()) { m_anti_aliasing_painter.stroke_path(m_current_path, state().stroke_style.get>(), line_width()); } else { m_anti_aliasing_painter.stroke_path(m_current_path, state().stroke_style.get(), line_width()); } - return handle_path_fill_nonzero(args); + m_current_path.close_all_subpaths(); + if (state().paint_style.has>()) { + m_anti_aliasing_painter.fill_path(m_current_path, state().paint_style.get>(), 1.0, Gfx::Painter::WindingRule::Nonzero); + } else { + m_anti_aliasing_painter.fill_path(m_current_path, state().paint_style.get(), Gfx::Painter::WindingRule::Nonzero); + } + end_path_paint(); + return {}; } RENDERER_HANDLER(path_fill_stroke_evenodd) { + begin_path_paint(); if (state().stroke_style.has>()) { m_anti_aliasing_painter.stroke_path(m_current_path, state().stroke_style.get>(), line_width()); } else { m_anti_aliasing_painter.stroke_path(m_current_path, state().stroke_style.get(), line_width()); } - return handle_path_fill_evenodd(args); + m_current_path.close_all_subpaths(); + if (state().paint_style.has>()) { + m_anti_aliasing_painter.fill_path(m_current_path, state().paint_style.get>(), 1.0, Gfx::Painter::WindingRule::EvenOdd); + } else { + m_anti_aliasing_painter.fill_path(m_current_path, state().paint_style.get(), Gfx::Painter::WindingRule::EvenOdd); + } + end_path_paint(); + return {}; } RENDERER_HANDLER(path_close_fill_stroke_nonzero)