mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This reverts commit 56bb40c0179628e37ba3614534552441642c0492. Additionally, we fix https://github.com/flutter/flutter/issues/40863 by adding a secondary VSYNC callback. Unit tests are updated to provide VSYNC mocking and check the fix of https://github.com/flutter/flutter/issues/40863. The root cause of having https://github.com/flutter/flutter/issues/40863 is the false assumption that each input event must trigger a new frame. That was true in the framework PR https://github.com/flutter/flutter/pull/36616 because the input events there are all scrolling move events. When the PR was ported to the engine, we can no longer distinguish different types of events, and tap events may no longer trigger a new frame. Therefore, this PR directly hooks into the `VsyncWaiter` and uses its (newly added) secondary callback to dispatch the pending input event.