Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 47dcecbf0d79bf840895cd7a8b3254c34b675a73
      
https://github.com/WebKit/WebKit/commit/47dcecbf0d79bf840895cd7a8b3254c34b675a73
  Author: Eddie Kohler <[email protected]>
  Date:   2024-08-25 (Sun, 25 Aug 2024)

  Changed paths:
    A LayoutTests/fast/table/row-background-image-extent-expected.html
    A LayoutTests/fast/table/row-background-image-extent.html
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/BackgroundPainter.h
    M Source/WebCore/rendering/RenderTableCell.cpp

  Log Message:
  -----------
  Fix extents of background-images for table cell groups
https://bugs.webkit.org/show_bug.cgi?id=278038

Reviewed by Simon Fraser.

RenderTableCell::paintBackgroundsBehindCell() uses BackgroundPainter, with 
primary
renderer set to the cell renderer. This improperly shrinks a row (or column) 
image
to fit inside the cell's border. The row (or column) image is actually sized to 
the
row (or column) box, which is the union of the relevant cells' border-boxes.

It would not be correct, though, to construct the BackgroundPainter with primary
renderer set to the row or column. This is because the cell might have rounded
edges; and if it does, those rounded edges should clip the row or column
background image. (Space between cells is transparent.)

So give BackgroundPainter the ability to override a FillLayer's clip and origin.

* LayoutTests/fast/table/row-background-image-extent-expected.html: Added.
* LayoutTests/fast/table/row-background-image-extent.html: Added.
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::paintFillLayer):
(WebCore::BackgroundPainter::calculateBackgroundImageGeometry):
* Source/WebCore/rendering/BackgroundPainter.h:
(WebCore::BackgroundPainter::setOverrideClip):
* Source/WebCore/rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell):

Canonical link: https://commits.webkit.org/282712@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to