diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index 836b8bc1ec..54892ef0b0 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -163,6 +163,9 @@ int main(int argc, char** argv) RefPtr config = CConfigFile::get_for_app("Terminal"); auto terminal = TerminalWidget::construct(ptm_fd, true, config); + terminal->on_title_change = [&](auto& title) { + window->set_title(title); + }; window->set_main_widget(terminal); window->move_to(300, 300); terminal->apply_size_increments_to_window(*window); diff --git a/Libraries/LibVT/TerminalWidget.cpp b/Libraries/LibVT/TerminalWidget.cpp index 1b08fa2989..0473673f9c 100644 --- a/Libraries/LibVT/TerminalWidget.cpp +++ b/Libraries/LibVT/TerminalWidget.cpp @@ -323,10 +323,8 @@ void TerminalWidget::paint_event(GPaintEvent& event) void TerminalWidget::set_window_title(const StringView& title) { - auto* w = window(); - if (!w) - return; - w->set_title(title); + if (on_title_change) + on_title_change(title); } void TerminalWidget::invalidate_cursor() diff --git a/Libraries/LibVT/TerminalWidget.h b/Libraries/LibVT/TerminalWidget.h index 68d77fbb59..5e2f53923b 100644 --- a/Libraries/LibVT/TerminalWidget.h +++ b/Libraries/LibVT/TerminalWidget.h @@ -43,6 +43,8 @@ public: virtual bool accepts_focus() const override { return true; } + Function on_title_change; + private: // ^GWidget virtual void event(CEvent&) override;