Sfoglia il codice sorgente

LibWeb: Use the correct painter for painting stacking contexts

When cloning the PaintContext we should be using the painter backed by
the bitmap created for this stacking context layer.

Fixes: 54c3053bc3b0 ("LibWeb: Preserve paint state when painting...")
Simon Wanner 3 anni fa
parent
commit
a2d89f11d1

+ 2 - 2
Userland/Libraries/LibWeb/Painting/PaintContext.h

@@ -37,9 +37,9 @@ public:
     bool has_focus() const { return m_focus; }
     void set_has_focus(bool focus) { m_focus = focus; }
 
-    PaintContext clone() const
+    PaintContext clone(Gfx::Painter& painter) const
     {
-        auto clone = PaintContext(m_painter, m_palette, m_scroll_offset);
+        auto clone = PaintContext(painter, m_palette, m_scroll_offset);
         clone.m_viewport_rect = m_viewport_rect;
         clone.m_should_show_line_box_borders = m_should_show_line_box_borders;
         clone.m_focus = m_focus;

+ 1 - 1
Userland/Libraries/LibWeb/Painting/StackingContext.cpp

@@ -262,7 +262,7 @@ void StackingContext::paint(PaintContext& context) const
             return;
         auto bitmap = bitmap_or_error.release_value_but_fixme_should_propagate_errors();
         Gfx::Painter painter(bitmap);
-        auto paint_context = context.clone();
+        auto paint_context = context.clone(painter);
         paint_internal(paint_context);
 
         auto transform_origin = this->transform_origin();