Explorar o código

LibWeb: Fix null dereference in HtmlView::mousedown_event

Running event handlers in response to a mouse event may cause full
layout invalidation, so we can't expect the layout root to be present
right after returning from JS.

Fixes #1629.
Andreas Kling %!s(int64=5) %!d(string=hai) anos
pai
achega
f8d6d61da5
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      Libraries/LibWeb/HtmlView.cpp

+ 2 - 1
Libraries/LibWeb/HtmlView.cpp

@@ -242,7 +242,8 @@ void HtmlView::mousedown_event(GUI::MouseEvent& event)
                 }
             } else {
                 if (event.button() == GUI::MouseButton::Left) {
-                    layout_root()->selection().set({ result.layout_node, result.index_in_node }, {});
+                    if (layout_root())
+                        layout_root()->selection().set({ result.layout_node, result.index_in_node }, {});
                     dump_selection("MouseDown");
                     m_in_mouse_selection = true;
                 }