From a4030869400f2a80c903982b125ead55c1b55a8c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 16 Mar 2022 23:12:18 +0100 Subject: [PATCH] LibWeb: Schedule a relayout after and elements load Otherwise we'll be stuck with the intrinsic dimensions of the replacement content. --- Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp | 2 ++ Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp index 79de7a9e13..975f8bea66 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp @@ -23,6 +23,7 @@ HTMLImageElement::HTMLImageElement(DOM::Document& document, DOM::QualifiedName q { m_image_loader.on_load = [this] { set_needs_style_update(true); + this->document().set_needs_layout(); queue_an_element_task(HTML::Task::Source::DOMManipulation, [this] { dispatch_event(DOM::Event::create(EventNames::load)); }); @@ -31,6 +32,7 @@ HTMLImageElement::HTMLImageElement(DOM::Document& document, DOM::QualifiedName q m_image_loader.on_fail = [this] { dbgln("HTMLImageElement: Resource did fail: {}", src()); set_needs_style_update(true); + this->document().set_needs_layout(); queue_an_element_task(HTML::Task::Source::DOMManipulation, [this] { dispatch_event(DOM::Event::create(EventNames::error)); }); diff --git a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp index 7da61598b6..d4586ac172 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp @@ -21,6 +21,7 @@ HTMLObjectElement::HTMLObjectElement(DOM::Document& document, DOM::QualifiedName m_image_loader.on_load = [this] { m_should_show_fallback_content = false; set_needs_style_update(true); + this->document().set_needs_layout(); // FIXME: This should be done by the HTML^Wdocument parser. dispatch_event(DOM::Event::create(HTML::EventNames::load)); }; @@ -28,6 +29,7 @@ HTMLObjectElement::HTMLObjectElement(DOM::Document& document, DOM::QualifiedName m_image_loader.on_fail = [this] { m_should_show_fallback_content = true; set_needs_style_update(true); + this->document().set_needs_layout(); // FIXME: This should be done by the HTML^Wdocument parser. dispatch_event(DOM::Event::create(HTML::EventNames::load)); };