summaryrefslogtreecommitdiffstats
path: root/gfx/layers/wr/WebRenderScrollData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/layers/wr/WebRenderScrollData.cpp')
-rw-r--r--gfx/layers/wr/WebRenderScrollData.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/gfx/layers/wr/WebRenderScrollData.cpp b/gfx/layers/wr/WebRenderScrollData.cpp
index 538df8bdef..905b7e1de0 100644
--- a/gfx/layers/wr/WebRenderScrollData.cpp
+++ b/gfx/layers/wr/WebRenderScrollData.cpp
@@ -370,6 +370,22 @@ void WebRenderScrollData::ApplyUpdates(ScrollUpdatesMap&& aUpdates,
mPaintSequenceNumber = aPaintSequenceNumber;
}
+void WebRenderScrollData::PrependUpdates(
+ const WebRenderScrollData& aPreviousData) {
+ for (auto previousMetadata : aPreviousData.mScrollMetadatas) {
+ const nsTArray<ScrollPositionUpdate>& previousUpdates =
+ previousMetadata.GetScrollUpdates();
+ if (previousUpdates.IsEmpty()) {
+ continue;
+ }
+
+ if (Maybe<size_t> index =
+ HasMetadataFor(previousMetadata.GetMetrics().GetScrollId())) {
+ mScrollMetadatas[*index].PrependUpdates(previousUpdates);
+ }
+ }
+}
+
void WebRenderScrollData::DumpSubtree(std::ostream& aOut, size_t aIndex,
const std::string& aIndent) const {
aOut << aIndent;