Переглянути джерело

LibWeb: Move the painting of the border out of paint()

So other Boxes can override this function.
Tobias Christiansen 4 роки тому
батько
коміт
ff0b3518fa

+ 10 - 5
Userland/Libraries/LibWeb/Layout/Box.cpp

@@ -60,11 +60,7 @@ void Box::paint(PaintContext& context, PaintPhase phase)
     }
 
     if (phase == PaintPhase::Border) {
-        auto bordered_rect = this->bordered_rect();
-        Painting::paint_border(context, Painting::BorderEdge::Left, bordered_rect, computed_values());
-        Painting::paint_border(context, Painting::BorderEdge::Right, bordered_rect, computed_values());
-        Painting::paint_border(context, Painting::BorderEdge::Top, bordered_rect, computed_values());
-        Painting::paint_border(context, Painting::BorderEdge::Bottom, bordered_rect, computed_values());
+        paint_border(context);
     }
 
     if (phase == PaintPhase::Overlay && dom_node() && document().inspected_node() == dom_node()) {
@@ -87,6 +83,15 @@ void Box::paint(PaintContext& context, PaintPhase phase)
     }
 }
 
+void Box::paint_border(PaintContext& context)
+{
+    auto bordered_rect = this->bordered_rect();
+    Painting::paint_border(context, Painting::BorderEdge::Left, bordered_rect, computed_values());
+    Painting::paint_border(context, Painting::BorderEdge::Right, bordered_rect, computed_values());
+    Painting::paint_border(context, Painting::BorderEdge::Top, bordered_rect, computed_values());
+    Painting::paint_border(context, Painting::BorderEdge::Bottom, bordered_rect, computed_values());
+}
+
 void Box::paint_background_image(
     PaintContext& context,
     const Gfx::Bitmap& background_image,

+ 1 - 0
Userland/Libraries/LibWeb/Layout/Box.h

@@ -110,6 +110,7 @@ public:
     StackingContext* enclosing_stacking_context();
 
     virtual void paint(PaintContext&, PaintPhase) override;
+    virtual void paint_border(PaintContext& context);
 
     Vector<LineBox>& line_boxes() { return m_line_boxes; }
     const Vector<LineBox>& line_boxes() const { return m_line_boxes; }