Bläddra i källkod

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.
Andreas Kling 2 år sedan
förälder
incheckning
95a3da86c3
1 ändrade filer med 1 tillägg och 1 borttagningar
  1. 1 1
      Userland/Libraries/LibWeb/Painting/StackingContext.cpp

+ 1 - 1
Userland/Libraries/LibWeb/Painting/StackingContext.cpp

@@ -299,7 +299,7 @@ void StackingContext::paint(PaintContext& context) const
 {
 {
     Gfx::PainterStateSaver saver(context.painter());
     Gfx::PainterStateSaver saver(context.painter());
     if (m_box.is_fixed_position()) {
     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();
     auto opacity = m_box.computed_values().opacity();