Quellcode durchsuchen

LibWeb: Schedule a relayout after <image> and <object> elements load

Otherwise we'll be stuck with the intrinsic dimensions of the
replacement content.
Andreas Kling vor 3 Jahren
Ursprung
Commit
a403086940

+ 2 - 0
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));
         });

+ 2 - 0
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));
     };