Kaynağa Gözat

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 11 ay önce
ebeveyn
işleme
40742d95e6

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

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