diff options
author | Itamar <itamar8910@gmail.com> | 2023-02-18 13:15:25 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-02-24 19:09:27 +0100 |
commit | 58c4fe52d4c522a7ca3c57614377fbe17d9cdfa8 (patch) | |
tree | d2dd655e8631d614e0687d28ee17cf1cc6bb7899 | |
parent | ff6fb2cb10a5b2223b8bba34bb725c70201d91c0 (diff) | |
download | serenity-58c4fe52d4c522a7ca3c57614377fbe17d9cdfa8.zip |
HackStudio: Fix event loop usage in debugger callbacks
These callbacks are called from a different thread than the UI thread,
so we need to explicitly use the Application's event loop to perform GUI
logic.
-rw-r--r-- | Userland/DevTools/HackStudio/HackStudioWidget.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 1eb7e6ec52..55497033ed 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -1050,7 +1050,7 @@ void HackStudioWidget::initialize_debugger() } dbgln("Debugger stopped at source position: {}:{}", source_position.value().file_path, source_position.value().line_number); - deferred_invoke([this, source_position, ®s] { + GUI::Application::the()->event_loop().deferred_invoke([this, source_position, ®s] { m_current_editor_in_execution = get_editor_of_file(source_position.value().file_path); if (m_current_editor_in_execution) m_current_editor_in_execution->editor().set_execution_position(source_position.value().line_number - 1); @@ -1059,20 +1059,20 @@ void HackStudioWidget::initialize_debugger() m_disassembly_widget->update_state(*Debugger::the().session(), regs); HackStudioWidget::reveal_action_tab(*m_debug_info_widget); }); - Core::EventLoop::wake_current(); + GUI::Application::the()->event_loop().wake(); return Debugger::HasControlPassedToUser::Yes; }, [this]() { - deferred_invoke([this] { + GUI::Application::the()->event_loop().deferred_invoke([this] { m_debug_info_widget->set_debug_actions_enabled(false); if (m_current_editor_in_execution) m_current_editor_in_execution->editor().clear_execution_position(); }); - Core::EventLoop::wake_current(); + GUI::Application::the()->event_loop().wake(); }, [this]() { - deferred_invoke([this] { + GUI::Application::the()->event_loop().deferred_invoke([this] { m_debug_info_widget->set_debug_actions_enabled(false); if (m_current_editor_in_execution) m_current_editor_in_execution->editor().clear_execution_position(); @@ -1089,7 +1089,7 @@ void HackStudioWidget::initialize_debugger() HackStudioWidget::hide_action_tabs(); GUI::MessageBox::show(window(), "Program Exited"sv, "Debugger"sv, GUI::MessageBox::Type::Information); }); - Core::EventLoop::wake_current(); + GUI::Application::the()->event_loop().wake(); }); } |