Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aca685c38e7af9e310a5582f2dcf22abf4951575
      
https://github.com/WebKit/WebKit/commit/aca685c38e7af9e310a5582f2dcf22abf4951575
  Author: Alan Baradlay <[email protected]>
  Date:   2024-11-25 (Mon, 25 Nov 2024)

  Changed paths:
    A LayoutTests/fast/repaint/inline-box-ink-overflow-shrink-expected.txt
    A LayoutTests/fast/repaint/inline-box-ink-overflow-shrink.html
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBlockFlow.h

  Log Message:
  -----------
  [repaint] Block container fails to repaint child inline box when its ink 
overflow shrinks
https://bugs.webkit.org/show_bug.cgi?id=283659

Reviewed by Antti Koivisto.

Whenever computing the repaint rect covering the inline damage we have to take 
ink overflow into account.
(and not the content height as it may not cover the ink overflow rectangle).

This change addresses cases when content with ink overflow shrinks where the 
repaint rectangle bottom is based on
the previous _content_ bottom not covering the previous _ink_overflow_ bottom.

1. Cache the ink overflow version of "previous content extent" when inline 
layout is getting destroyed.
2. Use ink overflow after layout when computing the repaintTop/bottom values.

(Rename LineLayout::contentBoxLogicalHeight to contentLogicalHeight as line 
layout has no concept of content _box_)

* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink-expected.txt: Added.
* LayoutTests/fast/repaint/inline-box-ink-overflow-shrink.html: Added.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::contentBoxLogicalHeight const): 
Deleted.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
(WebCore::RenderBlockFlow::inlineContentTopAndBottomIncludingInkOverflow const):
(WebCore::RenderBlockFlow::layoutInlineContent):
* Source/WebCore/rendering/RenderBlockFlow.h:

Canonical link: https://commits.webkit.org/287079@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