Browse Source

Browser: Set the console's interpreter when a tab's document changes

Previously, once a console was opened for a tab, its interpreter
would never change, leaving it with a stale interpreter. Now, when
the tab's HtmlView loads a new document, the console will receive
that document's interpreter.
FalseHonesty 5 năm trước cách đây
mục cha
commit
20df82c983
1 tập tin đã thay đổi với 7 bổ sung0 xóa
  1. 7 0
      Applications/Browser/Tab.cpp

+ 7 - 0
Applications/Browser/Tab.cpp

@@ -206,6 +206,13 @@ Tab::Tab()
             on_favicon_change(icon);
     };
 
+    m_html_widget->on_set_document = [this](auto* document) {
+        if (document && m_console_window) {
+            auto* console_widget = static_cast<ConsoleWidget*>(m_console_window->main_widget());
+            console_widget->set_interpreter(document->interpreter().make_weak_ptr());
+        }
+    };
+
     auto focus_location_box_action = GUI::Action::create(
         "Focus location box", { Mod_Ctrl, Key_L }, [this](auto&) {
             m_location_box->select_all();