Repository navigation
fix: apply a deferred item-size MVCP correction in the next position pass - #596
Open
chrispader wants to merge 1 commit into
Open
chrispader wants to merge 1 commit into
chrispader wants to merge 1 commit into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
…pass On web, an active MVCP anchor lock defers the item-size recalculation to the next frame. A pass that repositions items before that frame, such as the one a scroll event triggers, moved the visible items without the correction, so they jumped for a frame and only partly came back. calculateItemsInView now takes over a pending mvcpRecalculate: it cancels the scheduled frame and runs MVCP with the item-size source in the current pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chrispader
force-pushed
the
fix/apply-pending-anchor-correction
branch
from
November 9, 2026 10:53
74257ff to
98226a5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On web, an active MVCP anchor lock defers the item-size correction to the next frame. If another pass repositions items before that frame, for example the one a scroll event triggers, the visible items move without the correction. They jump for a frame and only partly come back once the deferred pass runs. With this change, the first pass that repositions items takes over the pending
mvcpRecalculateand applies the correction itself.We hit this in Expensify/App#100733, which moves the chat message list to LegendList. When older messages load at the top of a chat, the messages on screen jump by about 60 pixels and end up about 20 pixels off. Expensify currently carries this fix as a patch.
Reproduction
maintainVisibleContentPositionand more items than fit on screen.