diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index 1f1371ccc0..97f1e99dbd 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -312,13 +312,15 @@ void Renderer::deactivate_clip() void Renderer::begin_path_paint() { - activate_clip(); + if (m_rendering_preferences.clip_paths) + activate_clip(); } void Renderer::end_path_paint() { m_current_path.clear(); - deactivate_clip(); + if (m_rendering_preferences.clip_paths) + deactivate_clip(); } RENDERER_HANDLER(path_stroke) @@ -1238,7 +1240,9 @@ PDFErrorOr Renderer::show_image(NonnullRefPtr image) Renderer& m_renderer; }; - ClipRAII clip_raii(*this); + OwnPtr clip_raii; + if (m_rendering_preferences.clip_images) + clip_raii = make(*this); if (!m_rendering_preferences.show_images) { show_empty_image(width, height); diff --git a/Userland/Libraries/LibPDF/Renderer.h b/Userland/Libraries/LibPDF/Renderer.h index 32a3467d29..82977ef7a6 100644 --- a/Userland/Libraries/LibPDF/Renderer.h +++ b/Userland/Libraries/LibPDF/Renderer.h @@ -90,6 +90,9 @@ struct RenderingPreferences { bool show_clipping_paths { false }; bool show_images { true }; + bool clip_paths { true }; + bool clip_images { true }; + unsigned hash() const { return static_cast(show_clipping_paths) | static_cast(show_images) << 1;