diff --git a/Libraries/LibCore/EventLoopImplementationWindows.cpp b/Libraries/LibCore/EventLoopImplementationWindows.cpp index 21e5235e304..2e38479c518 100644 --- a/Libraries/LibCore/EventLoopImplementationWindows.cpp +++ b/Libraries/LibCore/EventLoopImplementationWindows.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include @@ -196,7 +197,9 @@ void EventLoopManagerWindows::unregister_notifier(Notifier& notifier) intptr_t EventLoopManagerWindows::register_timer(EventReceiver& object, int milliseconds, bool should_reload, TimerShouldFireWhenNotVisible fire_when_not_visible) { VERIFY(milliseconds >= 0); - HANDLE timer = CreateWaitableTimer(NULL, FALSE, NULL); + // FIXME: This is a temporary fix for issue #3641 + bool manual_reset = static_cast(object).is_single_shot(); + HANDLE timer = CreateWaitableTimer(NULL, manual_reset, NULL); VERIFY(timer); LARGE_INTEGER first_time = {};