From 95a3da86c327a7d25c6a85640e98350ab53773f0 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 1 Oct 2022 14:04:22 +0200 Subject: [PATCH] LibWeb: Reset painter translation when painting fixed-position elements This makes nested position:fixed elements work, previously we'd apply the viewport scroll offset once at every nesting level. --- Userland/Libraries/LibWeb/Painting/StackingContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp index 0ddb24201b..48367aca63 100644 --- a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp @@ -299,7 +299,7 @@ void StackingContext::paint(PaintContext& context) const { Gfx::PainterStateSaver saver(context.painter()); if (m_box.is_fixed_position()) { - context.painter().translate(context.scroll_offset()); + context.painter().translate(-context.painter().translation()); } auto opacity = m_box.computed_values().opacity();