瀏覽代碼

Browser: Hide inspected-element outline when DOM Inspector is closed

...and then show it again when the inspector is re-opened. :^)
Sam Atkins 3 年之前
父節點
當前提交
3ef4ba810a

+ 3 - 0
Userland/Applications/Browser/BrowserWindow.cpp

@@ -220,6 +220,9 @@ void BrowserWindow::build_menus()
                     tab.m_dom_inspector_window->set_title("DOM inspector");
                     tab.m_dom_inspector_window->set_icon(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/inspector-object.png"));
                     tab.m_dom_inspector_window->set_main_widget<InspectorWidget>();
+                    tab.m_dom_inspector_window->on_close = [&]() {
+                        tab.m_page_view->document()->set_inspected_node(nullptr);
+                    };
                 }
                 auto* inspector_widget = static_cast<InspectorWidget*>(tab.m_dom_inspector_window->main_widget());
                 inspector_widget->set_document(tab.m_page_view->document());

+ 2 - 0
Userland/Applications/Browser/InspectorWidget.cpp

@@ -26,6 +26,7 @@ void InspectorWidget::set_inspected_node(GUI::ModelIndex const index)
         return;
     }
     auto* node = static_cast<Web::DOM::Node*>(index.internal_data());
+    m_inspected_node = node;
     m_document->set_inspected_node(node);
     if (node && node->is_element()) {
         auto& element = verify_cast<Web::DOM::Element>(*node);
@@ -70,6 +71,7 @@ InspectorWidget::~InspectorWidget()
 
 void InspectorWidget::set_document(Web::DOM::Document* document)
 {
+    document->set_inspected_node(m_inspected_node);
     if (m_document == document)
         return;
     m_document = document;

+ 2 - 0
Userland/Applications/Browser/InspectorWidget.h

@@ -29,6 +29,8 @@ private:
     RefPtr<GUI::TableView> m_style_table_view;
     RefPtr<GUI::TableView> m_computed_style_table_view;
 
+    RefPtr<Web::DOM::Node> m_inspected_node;
+
     // One of these will be available, depending on if we're
     // in-process (m_document) or out-of-process (m_dom_json)
     RefPtr<Web::DOM::Document> m_document;