Explorar o código

LibWeb: Call set_needs_display() if navigable is scrolled or resized

`m_needs_repaint = true` is not enough because it doesn't schedule
repaint of a parent navigable.

Fixes the bug when an iframe is not repainted after scrolling.
Aliaksandr Kalenik hai 11 meses
pai
achega
40742d95e6
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      Userland/Libraries/LibWeb/HTML/Navigable.cpp

+ 2 - 2
Userland/Libraries/LibWeb/HTML/Navigable.cpp

@@ -1994,7 +1994,7 @@ void Navigable::set_viewport_size(CSSPixelSize size)
         document->invalidate_style();
         document->set_needs_layout();
     }
-    m_needs_repaint = true;
+    set_needs_display();
 
     if (auto document = active_document()) {
         document->inform_all_viewport_clients_about_the_current_viewport_rect();
@@ -2009,7 +2009,7 @@ void Navigable::perform_scroll_of_viewport(CSSPixelPoint new_position)
     if (m_viewport_scroll_offset != new_position) {
         m_viewport_scroll_offset = new_position;
         scroll_offset_did_change();
-        m_needs_repaint = true;
+        set_needs_display();
 
         if (auto document = active_document())
             document->inform_all_viewport_clients_about_the_current_viewport_rect();