From 451df702750697f7833168679904701a12425537 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 10 Dec 2023 10:09:40 -0500 Subject: [PATCH] Ladybird+LibWebView: Ensure existing Inspector widgets inspect the page If the Inspector widget already exists, be sure to inspect the page when it is re-opened. However, this should be a no-op if the page was already inspected (as any existing Inspector will be reset if a new page load began). Note this is not an issue in the AppKit chrome. --- Ladybird/Qt/Tab.cpp | 2 ++ Userland/Applications/Browser/Tab.cpp | 2 ++ Userland/Libraries/LibWebView/InspectorClient.cpp | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Ladybird/Qt/Tab.cpp b/Ladybird/Qt/Tab.cpp index b36e85c86e..fb49199180 100644 --- a/Ladybird/Qt/Tab.cpp +++ b/Ladybird/Qt/Tab.cpp @@ -750,6 +750,8 @@ void Tab::show_inspector_window(InspectorTarget inspector_target) { if (!m_inspector_widget) m_inspector_widget = new InspectorWidget(this, view()); + else + m_inspector_widget->inspect(); m_inspector_widget->show(); m_inspector_widget->activateWindow(); diff --git a/Userland/Applications/Browser/Tab.cpp b/Userland/Applications/Browser/Tab.cpp index b10df27305..0b2a15835b 100644 --- a/Userland/Applications/Browser/Tab.cpp +++ b/Userland/Applications/Browser/Tab.cpp @@ -923,6 +923,8 @@ void Tab::show_inspector_window(Browser::Tab::InspectorTarget inspector_target) }; m_dom_inspector_widget = window->set_main_widget(*m_web_content_view); + } else { + m_dom_inspector_widget->inspect(); } if (inspector_target == InspectorTarget::HoveredElement) { diff --git a/Userland/Libraries/LibWebView/InspectorClient.cpp b/Userland/Libraries/LibWebView/InspectorClient.cpp index e208b9a6d8..af4d03d11c 100644 --- a/Userland/Libraries/LibWebView/InspectorClient.cpp +++ b/Userland/Libraries/LibWebView/InspectorClient.cpp @@ -174,7 +174,9 @@ InspectorClient::~InspectorClient() void InspectorClient::inspect() { - m_dom_tree_loaded = false; + if (m_dom_tree_loaded) + return; + m_content_web_view.inspect_dom_tree(); m_content_web_view.inspect_accessibility_tree(); }