Procházet zdrojové kódy

LibGUI: Clip GUI::Frame children to the frame_inner_rect()

This way we don't draw the frame border underneath our children. :^)
Andreas Kling před 5 roky
rodič
revize
ac78531756
2 změnil soubory, kde provedl 8 přidání a 0 odebrání
  1. 6 0
      Libraries/LibGUI/Frame.cpp
  2. 2 0
      Libraries/LibGUI/Frame.h

+ 6 - 0
Libraries/LibGUI/Frame.cpp

@@ -59,4 +59,10 @@ void Frame::paint_event(PaintEvent& event)
     painter.add_clip_rect(event.rect());
     Gfx::StylePainter::paint_frame(painter, rect(), palette(), m_shape, m_shadow, m_thickness, spans_entire_window_horizontally());
 }
+
+Gfx::IntRect Frame::children_clip_rect() const
+{
+    return frame_inner_rect();
+}
+
 }

+ 2 - 0
Libraries/LibGUI/Frame.h

@@ -48,6 +48,8 @@ public:
     Gfx::IntRect frame_inner_rect_for_size(const Gfx::IntSize& size) const { return { m_thickness, m_thickness, size.width() - m_thickness * 2, size.height() - m_thickness * 2 }; }
     Gfx::IntRect frame_inner_rect() const { return frame_inner_rect_for_size(size()); }
 
+    virtual Gfx::IntRect children_clip_rect() const override;
+
 protected:
     Frame();
     void paint_event(PaintEvent&) override;