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

LibCore: Move post_event() back to EventLoopImplementation

This shouldn't have been moved to EventLoopManager, as the manager is
global and one-per-process, and the implementation is one-per-loop.

This makes cross-thread event posting work again, and unbreaks
SoundPlayer (and probably other things as well.)
This commit is contained in:
Andreas Kling 2023-04-26 18:51:07 +02:00 committed by Sam Atkins
parent 7035a19645
commit b61a87c03c
7 changed files with 22 additions and 35 deletions

View file

@ -74,12 +74,11 @@ void EventLoopImplementationQt::wake()
m_event_loop.wakeUp();
}
void EventLoopManagerQt::deferred_invoke(Function<void()> function)
void EventLoopImplementationQt::post_event(Core::Object& receiver, NonnullOwnPtr<Core::Event>&& event)
{
VERIFY(function);
QTimer::singleShot(0, [function = move(function)] {
function();
});
m_thread_event_queue.post_event(receiver, move(event));
if (&m_thread_event_queue != &Core::ThreadEventQueue::current())
wake();
}
static void qt_timer_fired(int timer_id, Core::TimerShouldFireWhenNotVisible should_fire_when_not_visible, Core::Object& object)