From eeec1c1293705945f6b03fc5f33693e3c8fdc02a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 3 Apr 2020 22:55:48 +0200 Subject: [PATCH] LibCore: Don't replay last handled event when leaving nested event loop The event that triggered the exit from an inner event loop would always get re-delivered in the outer event loop due to a silly off-by-one mistake when transferring pending events between loops. --- Libraries/LibCore/EventLoop.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Libraries/LibCore/EventLoop.cpp b/Libraries/LibCore/EventLoop.cpp index 3675111df7..805d2f67b0 100644 --- a/Libraries/LibCore/EventLoop.cpp +++ b/Libraries/LibCore/EventLoop.cpp @@ -365,7 +365,7 @@ void EventLoop::pump(WaitMode mode) #endif decltype(m_queued_events) new_event_queue; new_event_queue.ensure_capacity(m_queued_events.size() + events.size()); - for (; i < events.size(); ++i) + for (++i; i < events.size(); ++i) new_event_queue.unchecked_append(move(events[i])); new_event_queue.append(move(m_queued_events)); m_queued_events = move(new_event_queue);