ソースを参照

LibGUI: Clip to paint event rect in most widgets.

Andreas Kling 6 年 前
コミット
3fe7ddadaf
5 ファイル変更10 行追加5 行削除
  1. 2 1
      LibGUI/GButton.cpp
  2. 2 1
      LibGUI/GCheckBox.cpp
  3. 2 1
      LibGUI/GLabel.cpp
  4. 2 1
      LibGUI/GListBox.cpp
  5. 2 1
      LibGUI/GTextBox.cpp

+ 2 - 1
LibGUI/GButton.cpp

@@ -22,9 +22,10 @@ void GButton::set_caption(String&& caption)
     update();
 }
 
-void GButton::paint_event(GPaintEvent&)
+void GButton::paint_event(GPaintEvent& event)
 {
     Painter painter(*this);
+    painter.set_clip_rect(event.rect());
 
     GStyle::the().paint_button(painter, rect(), m_button_style, m_being_pressed, m_hovered);
 

+ 2 - 1
LibGUI/GCheckBox.cpp

@@ -50,9 +50,10 @@ void GCheckBox::set_checked(bool b)
     update();
 }
 
-void GCheckBox::paint_event(GPaintEvent&)
+void GCheckBox::paint_event(GPaintEvent& event)
 {
     Painter painter(*this);
+    painter.set_clip_rect(event.rect());
 
     auto text_rect = rect();
     text_rect.set_left(s_box_width + 4);

+ 2 - 1
LibGUI/GLabel.cpp

@@ -24,9 +24,10 @@ void GLabel::set_text(String&& text)
     update();
 }
 
-void GLabel::paint_event(GPaintEvent&)
+void GLabel::paint_event(GPaintEvent& event)
 {
     Painter painter(*this);
+    painter.set_clip_rect(event.rect());
     if (fill_with_background_color())
         painter.fill_rect({ 0, 0, width(), height() }, background_color());
     if (m_icon) {

+ 2 - 1
LibGUI/GListBox.cpp

@@ -17,9 +17,10 @@ Rect GListBox::item_rect(int index) const
     return Rect { 2, 2 + (index * item_height), width() - 4, item_height };
 }
 
-void GListBox::paint_event(GPaintEvent&)
+void GListBox::paint_event(GPaintEvent& event)
 {
     Painter painter(*this);
+    painter.set_clip_rect(event.rect());
 
     painter.fill_rect({ rect().x() + 1, rect().y() + 1, rect().width() - 2, rect().height() - 2 }, background_color());
     painter.draw_rect(rect(), foreground_color());

+ 2 - 1
LibGUI/GTextBox.cpp

@@ -22,9 +22,10 @@ void GTextBox::set_text(String&& text)
     update();
 }
 
-void GTextBox::paint_event(GPaintEvent&)
+void GTextBox::paint_event(GPaintEvent& event)
 {
     Painter painter(*this);
+    painter.set_clip_rect(event.rect());
 
     painter.fill_rect({ rect().x() + 1, rect().y() + 1, rect().width() - 2, rect().height() - 2 }, background_color());
     painter.draw_rect(rect(), foreground_color());