From 10ccc9e11c10a9e0d0250613110340f1b11300ab Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 15 Feb 2020 01:27:37 +0100 Subject: [PATCH] LibGUI: Don't leak every tooltip window ever :^) --- Libraries/LibGUI/Application.cpp | 21 ++++++++++++--------- Libraries/LibGUI/Application.h | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Libraries/LibGUI/Application.cpp b/Libraries/LibGUI/Application.cpp index 49dacb513a..3f1ef5c5cb 100644 --- a/Libraries/LibGUI/Application.cpp +++ b/Libraries/LibGUI/Application.cpp @@ -106,7 +106,18 @@ Action* Application::action_for_key_event(const KeyEvent& event) } class Application::TooltipWindow final : public Window { + C_OBJECT(TooltipWindow); + public: + void set_tooltip(const StringView& tooltip) + { + // FIXME: Add some kind of GLabel auto-sizing feature. + int text_width = m_label->font().width(tooltip); + set_rect(100, 100, text_width + 10, m_label->font().glyph_height() + 8); + m_label->set_text(tooltip); + } + +private: TooltipWindow() { set_window_type(WindowType::Tooltip); @@ -119,21 +130,13 @@ public: set_main_widget(m_label); } - void set_tooltip(const StringView& tooltip) - { - // FIXME: Add some kind of GLabel auto-sizing feature. - int text_width = m_label->font().width(tooltip); - set_rect(100, 100, text_width + 10, m_label->font().glyph_height() + 8); - m_label->set_text(tooltip); - } - RefPtr