Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d461338cbd3218120b912a3556e610f2c89a2308
      
https://github.com/WebKit/WebKit/commit/d461338cbd3218120b912a3556e610f2c89a2308
  Author: Alan Baradlay <[email protected]>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    A 
LayoutTests/fast/editing/partial-layout-when-inserting-content-expected.html
    A LayoutTests/fast/editing/partial-layout-when-inserting-content.html
    M 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp

  Log Message:
  -----------
  [IFC][Partial layout] Inserting whitespace may not trigger line break at the 
correct position
https://bugs.webkit.org/show_bug.cgi?id=270388
<rdar://120751482>

Reviewed by Antti Koivisto.

A newly inserted content may introduce a new breaking opportunity on the 
damaged line. This breaking opportunity
may make part of the content eligible for the previous line.
(e.g. whitespace gets inserted right in the middle of a word making the left 
side fit on the previous line)
This change ensures that in case of content insertion, we always start layout 
from a line above where the actual damage happened.

(We also have to make sure that we don't bail out of partial layout too early 
by not seeing actual changes on the line.
This is done by storing trailing display boxes for content matching only after 
the _damanged_ line. see mayExitFromPartialLayout for more info)

* LayoutTests/fast/editing/partial-layout-when-inserting-content-expected.html: 
Added.
* LayoutTests/fast/editing/partial-layout-when-inserting-content.html: Added.
* 
Source/WebCore/layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::invalidatedLineByDamagedBox):
(WebCore::Layout::trailingDisplayBoxesAfterDamagedLine):
(WebCore::Layout::InlineInvalidation::updateInlineDamage):
(WebCore::Layout::InlineInvalidation::textInserted):
(WebCore::Layout::InlineInvalidation::inlineLevelBoxInserted):
(WebCore::Layout::trailingDisplayBoxesForInvalidatedLines): Deleted.

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