瀏覽代碼

LibWeb: Stop 'no-repeat' from expanding the background area

Previously, a `background-repeat` value of `no-repeat` in a direction
would cause the image to be drawn at exactly that size. This was fine if
the image was smaller than the element, but if it was larger, it would
draw outside its bounds. Now, it behaves itself. :^)
Sam Atkins 3 年之前
父節點
當前提交
64d805a027
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      Userland/Libraries/LibWeb/Painting/BackgroundPainting.cpp

+ 2 - 2
Userland/Libraries/LibWeb/Painting/BackgroundPainting.cpp

@@ -27,7 +27,7 @@ void paint_background(PaintContext& context, Gfx::IntRect const& background_rect
             // The background rect is already sized to align with 'repeat'.
             // The background rect is already sized to align with 'repeat'.
             break;
             break;
         case CSS::Repeat::NoRepeat:
         case CSS::Repeat::NoRepeat:
-            image_rect.set_width(background_data.image->width());
+            image_rect.set_width(min(image_rect.width(), background_data.image->width()));
             break;
             break;
         }
         }
 
 
@@ -39,7 +39,7 @@ void paint_background(PaintContext& context, Gfx::IntRect const& background_rect
             // The background rect is already sized to align with 'repeat'.
             // The background rect is already sized to align with 'repeat'.
             break;
             break;
         case CSS::Repeat::NoRepeat:
         case CSS::Repeat::NoRepeat:
-            image_rect.set_height(background_data.image->height());
+            image_rect.set_height(min(image_rect.height(), background_data.image->height()));
             break;
             break;
         }
         }