mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibWeb: Invalidate paint-only property after relayout
Before this change, `set_needs_to_resolve_paint_only_properties()` was only called after style invalidation. However, since relayout can be triggered independently from style invalidation, we need to ensure that paint-only properties are updated in that case too.
This commit is contained in:
parent
e8a20b3c3e
commit
ff3e454565
Notes:
sideshowbarker
2024-07-16 18:26:46 +09:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/SerenityOS/serenity/commit/ff3e454565 Pull-request: https://github.com/SerenityOS/serenity/pull/23109
3 changed files with 31 additions and 1 deletions
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="reference/resolve-paint-only-properties-after-layout-ref.html" />
|
||||
<style>
|
||||
#box {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: red;
|
||||
border-radius: 50px;
|
||||
}
|
||||
</style>
|
||||
<div id="box">hello</div>
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="reference/resolve-paint-only-properties-after-layout-ref.html" />
|
||||
<style>
|
||||
#box {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: red;
|
||||
border-radius: 50px;
|
||||
}
|
||||
</style>
|
||||
<div id="box"></div>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
const box = document.getElementById("box");
|
||||
box.innerHTML = 'hello';
|
||||
};
|
||||
</script>
|
|
@ -1060,8 +1060,10 @@ void Document::update_layout()
|
|||
// Broadcast the current viewport rect to any new paintables, so they know whether they're visible or not.
|
||||
inform_all_viewport_clients_about_the_current_viewport_rect();
|
||||
|
||||
if (navigable())
|
||||
if (navigable()) {
|
||||
navigable()->set_needs_to_resolve_paint_only_properties();
|
||||
navigable()->set_needs_display();
|
||||
}
|
||||
|
||||
if (navigable()->is_traversable()) {
|
||||
page().client().page_did_layout();
|
||||
|
|
Loading…
Reference in a new issue