mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1026756 - Detect when a scroll offset update is going to remove checkerboarding, and don't leave things in a low-precision state. r=Cwiiis
This commit is contained in:
parent
3f01e31e44
commit
46339827a7
@ -208,7 +208,17 @@ SharedFrameMetricsHelper::UpdateFromCompositorFrameMetrics(
|
||||
// When not a low precision pass and the page is in danger of checker boarding
|
||||
// abort update.
|
||||
if (!aLowPrecision && !mProgressiveUpdateWasInDanger) {
|
||||
if (AboutToCheckerboard(contentMetrics, compositorMetrics)) {
|
||||
bool scrollUpdatePending = contentMetrics.GetScrollOffsetUpdated() &&
|
||||
contentMetrics.GetScrollGeneration() != compositorMetrics.GetScrollGeneration();
|
||||
// If scrollUpdatePending is true, then that means the content-side
|
||||
// metrics has a new scroll offset that is going to be forced into the
|
||||
// compositor but it hasn't gotten there yet.
|
||||
// Even though right now comparing the metrics might indicate we're
|
||||
// about to checkerboard (and that's true), the checkerboarding will
|
||||
// disappear as soon as the new scroll offset update is processed
|
||||
// on the compositor side. To avoid leaving things in a low-precision
|
||||
// paint, we need to detect and handle this case (bug 1026756).
|
||||
if (!scrollUpdatePending && AboutToCheckerboard(contentMetrics, compositorMetrics)) {
|
||||
mProgressiveUpdateWasInDanger = true;
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user