diff --git a/Libraries/LibWeb/Painting/DisplayListRecorder.cpp b/Libraries/LibWeb/Painting/DisplayListRecorder.cpp index 16e3db62d55..11b225d9d83 100644 --- a/Libraries/LibWeb/Painting/DisplayListRecorder.cpp +++ b/Libraries/LibWeb/Painting/DisplayListRecorder.cpp @@ -310,12 +310,10 @@ void DisplayListRecorder::push_stacking_context(PushStackingContextParams params .matrix = params.transform.matrix, }, .clip_path = params.clip_path }); - m_scroll_frame_id_stack.append({}); } void DisplayListRecorder::pop_stacking_context() { - (void)m_scroll_frame_id_stack.take_last(); append(PopStackingContext {}); } diff --git a/Libraries/LibWeb/Painting/StackingContext.cpp b/Libraries/LibWeb/Painting/StackingContext.cpp index 30ce2dd7909..e89c7085968 100644 --- a/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Libraries/LibWeb/Painting/StackingContext.cpp @@ -371,7 +371,9 @@ void StackingContext::paint(PaintContext& context) const } } + context.display_list_recorder().push_scroll_frame_id({}); paint_internal(context); + context.display_list_recorder().pop_scroll_frame_id(); if (!filter.is_empty()) { context.display_list_recorder().restore(); diff --git a/Tests/LibWeb/Ref/expected/mask-image-with-scroll-offset-ref.html b/Tests/LibWeb/Ref/expected/mask-image-with-scroll-offset-ref.html new file mode 100644 index 00000000000..1669f88646d --- /dev/null +++ b/Tests/LibWeb/Ref/expected/mask-image-with-scroll-offset-ref.html @@ -0,0 +1,11 @@ + + +
diff --git a/Tests/LibWeb/Ref/input/mask-image-with-scroll-offset.html b/Tests/LibWeb/Ref/input/mask-image-with-scroll-offset.html new file mode 100644 index 00000000000..720f798a23a --- /dev/null +++ b/Tests/LibWeb/Ref/input/mask-image-with-scroll-offset.html @@ -0,0 +1,18 @@ + + + +
+
+