-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(QScrollArea): prevent content re-rendering on scroll or mousemove (fix #16579) #17041
Conversation
I found an edge case where it still triggers re-rendering. So this requires a little more work. |
UI Tests Results0 tests 0 ✅ 0s ⏱️ Results for commit d9e2a5f. ♻️ This comment has been updated with latest results. |
It turns out that Vue behaves slightly differently in dev and prod modes. It seems the effect isolation is more strict in dev and so it was not triggering the re-rendering of scrollable content when A complete solution is not possible without changing the code flow, as QScrollArea render function ultimately depends on Despite not being a complete solution, this change achieves:
This PR should be ready for merging. |
Hi, Huge thanks for contributing! There were merge errors so written this myself using your great sub-component idea. |
Again, excellent work! |
What kind of change does this PR introduce?
Does this PR introduce a breaking change?
The PR fulfills these requirements:
dev
branch (orv[X]
branch)fix: #xxx[,#xxx]
, where "xxx" is the issue number)Other information:
After separating out the thumb rendering logic into a separate component we can isolate the rendering when scroll position is updated or thumb is shown/hidden.
The HTML and CSS output remains unchanged. The functionality remains unchanged. UI tests under ui/dev (ui/playground) all appear to be functioning as expected.
Before the change
After the change
This would fix #16579