瀏覽代碼

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 5 年之前
父節點
當前提交
f8d6d61da5
共有 1 個文件被更改,包括 2 次插入1 次删除
  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 {
             } else {
                 if (event.button() == GUI::MouseButton::Left) {
                 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");
                     dump_selection("MouseDown");
                     m_in_mouse_selection = true;
                     m_in_mouse_selection = true;
                 }
                 }