diff --git a/Ladybird/Qt/EventLoopImplementationQt.cpp b/Ladybird/Qt/EventLoopImplementationQt.cpp index 7c5276863f9..0dd08a22969 100644 --- a/Ladybird/Qt/EventLoopImplementationQt.cpp +++ b/Ladybird/Qt/EventLoopImplementationQt.cpp @@ -209,6 +209,14 @@ void EventLoopImplementationQt::post_event(Core::EventReceiver& receiver, Nonnul wake(); } +void EventLoopImplementationQt::set_main_loop() +{ + m_main_loop = true; + + auto& event_loop_manager = static_cast(Core::EventLoopManager::the()); + event_loop_manager.set_main_loop_signal_notifiers({}); +} + static void qt_timer_fired(Core::TimerShouldFireWhenNotVisible should_fire_when_not_visible, Core::EventReceiver& object) { if (should_fire_when_not_visible == Core::TimerShouldFireWhenNotVisible::No) { @@ -330,6 +338,10 @@ bool EventLoopManagerQt::event_target_received_event(Badge()) +{ +} + +void EventLoopManagerQt::set_main_loop_signal_notifiers(Badge) { MUST(Core::System::socketpair(AF_LOCAL, SOCK_STREAM, 0, m_signal_socket_fds)); m_signal_socket_notifier = new QSocketNotifier(m_signal_socket_fds[0], QSocketNotifier::Read); diff --git a/Ladybird/Qt/EventLoopImplementationQt.h b/Ladybird/Qt/EventLoopImplementationQt.h index f3cf16e8a49..89fd7fa20b3 100644 --- a/Ladybird/Qt/EventLoopImplementationQt.h +++ b/Ladybird/Qt/EventLoopImplementationQt.h @@ -18,6 +18,7 @@ namespace Ladybird { +class EventLoopImplementationQt; class EventLoopImplementationQtEventTarget; class EventLoopManagerQt final : public Core::EventLoopManager { @@ -38,6 +39,8 @@ public: virtual int register_signal(int, Function) override; virtual void unregister_signal(int) override; + void set_main_loop_signal_notifiers(Badge); + private: static void handle_signal(int); @@ -77,7 +80,7 @@ public: virtual bool was_exit_requested() const override { return false; } virtual void notify_forked_and_in_child() override { } - void set_main_loop() { m_main_loop = true; } + void set_main_loop(); private: friend class EventLoopManagerQt;