diff options
-rw-r--r-- | Applications/Browser/Tab.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/Applications/Browser/Tab.cpp b/Applications/Browser/Tab.cpp index 3b8f6f4ea9..9de3288f2d 100644 --- a/Applications/Browser/Tab.cpp +++ b/Applications/Browser/Tab.cpp @@ -218,23 +218,17 @@ Tab::Tab() auto& inspect_menu = m_menubar->add_menu("Inspect"); inspect_menu.add_action(GUI::Action::create( "View source", { Mod_Ctrl, Key_U }, [this](auto&) { - String filename_to_open; - char tmp_filename[] = "/tmp/view-source.XXXXXX"; ASSERT(m_html_widget->document()); - if (m_html_widget->document()->url().protocol() == "file") { - filename_to_open = m_html_widget->document()->url().path(); - } else { - int fd = mkstemp(tmp_filename); - ASSERT(fd >= 0); - auto source = m_html_widget->document()->source(); - write(fd, source.characters(), source.length()); - close(fd); - filename_to_open = tmp_filename; - } - if (fork() == 0) { - execl("/bin/TextEditor", "TextEditor", filename_to_open.characters(), nullptr); - ASSERT_NOT_REACHED(); - } + auto url = m_html_widget->document()->url().to_string(); + auto source = m_html_widget->document()->source(); + auto window = GUI::Window::construct(); + auto& editor = window->set_main_widget<GUI::TextEditor>(); + editor.set_text(source); + editor.set_readonly(true); + window->set_rect(150, 150, 640, 480); + window->set_title(url); + window->show(); + (void)window.leak_ref(); }, this)); inspect_menu.add_action(GUI::Action::create( |