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

LibGUI: GWindow's focused widget should be a WeakPtr.

This fixes some very obvious use-after-free accesses.
This commit is contained in:
Andreas Kling 2019-04-18 23:16:57 +02:00
parent 9e6b0ccc0e
commit cc9cefbd5f
2 changed files with 2 additions and 2 deletions

View file

@ -337,7 +337,7 @@ void GWindow::set_focused_widget(GWidget* widget)
GEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusOut));
m_focused_widget->update();
}
m_focused_widget = widget;
m_focused_widget = widget ? widget->make_weak_ptr() : nullptr;
if (m_focused_widget) {
GEventLoop::current().post_event(*m_focused_widget, make<GEvent>(GEvent::FocusIn));
m_focused_widget->update();