1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:48:14 +00:00

LibGUI: Turn GUI::Application::the() into a pointer

During app teardown, the Application object may be destroyed before
something else, and so having Application::the() return a reference was
obscuring the truth about its lifetime.

This patch makes the API more honest by returning a pointer. While
this makes call sites look a bit more sketchy, do note that the global
Application pointer only becomes null during app teardown.
This commit is contained in:
Andreas Kling 2020-07-04 16:52:01 +02:00
parent f7577585a6
commit ca93c22ae2
26 changed files with 51 additions and 49 deletions

View file

@ -98,7 +98,7 @@ Widget::Widget()
, m_background_role(Gfx::ColorRole::Window)
, m_foreground_role(Gfx::ColorRole::WindowText)
, m_font(Gfx::Font::default_font())
, m_palette(Application::the().palette().impl())
, m_palette(Application::the()->palette().impl())
{
}
@ -245,7 +245,7 @@ void Widget::handle_paint_event(PaintEvent& event)
painter.draw_rect(rect(), Color::Magenta);
}
if (Application::the().focus_debugging_enabled()) {
if (Application::the()->focus_debugging_enabled()) {
if (is_focused()) {
Painter painter(*this);
painter.draw_rect(rect(), Color::Cyan);
@ -318,13 +318,13 @@ void Widget::handle_mousedoubleclick_event(MouseEvent& event)
void Widget::handle_enter_event(Core::Event& event)
{
if (has_tooltip())
Application::the().show_tooltip(m_tooltip, screen_relative_rect().center().translated(0, height() / 2));
Application::the()->show_tooltip(m_tooltip, screen_relative_rect().center().translated(0, height() / 2));
enter_event(event);
}
void Widget::handle_leave_event(Core::Event& event)
{
Application::the().hide_tooltip();
Application::the()->hide_tooltip();
leave_event(event);
}