diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp index defac2e416e..a83c805287c 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp +++ b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp @@ -34,15 +34,15 @@ void EventQueue::enqueueEvent(RawEvent&& rawEvent) const { auto repeatedEvent = eventQueue_.rend(); for (auto it = eventQueue_.rbegin(); it != eventQueue_.rend(); ++it) { - if (it->type == rawEvent.type && - it->eventTarget == rawEvent.eventTarget && it->isUnique) { - repeatedEvent = it; - break; - } else if (it->eventTarget == rawEvent.eventTarget) { + if (it->eventTarget == rawEvent.eventTarget) { // It is necessary to maintain order of different event types // for the same target. If the same target has event types A1, B1 // in the event queue and event A2 occurs. A1 has to stay in the // queue. + if (it->isUnique && it->type == rawEvent.type) { + repeatedEvent = it; + } + break; } }