mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
LibWeb: Fix blit corner clip position in PaintableWithLines
Fixes the bug when blit and sample commands position didn't match. Before: 1. Emit sample under corners 2. Apply scroll offset 3. Paint content 3. Blit corner clipping After: 1. Emit sample under corners 2. Save state 3. Apply scroll offset 4. Paint content 5. Restore state 6. Blit corner clipping
This commit is contained in:
parent
09f4032eeb
commit
3d8349eb88
Notes:
sideshowbarker
2024-07-17 03:03:37 +09:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/SerenityOS/serenity/commit/3d8349eb88 Pull-request: https://github.com/SerenityOS/serenity/pull/24450
|
@ -692,6 +692,7 @@ void PaintableWithLines::paint(PaintContext& context, PaintPhase phase) const
|
|||
context.recording_painter().sample_under_corners(*corner_clip_id, corner_radii, context.rounded_device_rect(clip_box).to_type<int>(), CornerClip::Outside);
|
||||
}
|
||||
|
||||
context.recording_painter().save();
|
||||
auto scroll_offset = context.rounded_device_point(this->scroll_offset());
|
||||
context.recording_painter().translate(-scroll_offset.to_type<int>());
|
||||
}
|
||||
|
@ -725,6 +726,7 @@ void PaintableWithLines::paint(PaintContext& context, PaintPhase phase) const
|
|||
context.recording_painter().blit_corner_clipping(*corner_clip_id, clip_box.to_type<int>());
|
||||
corner_clip_id = {};
|
||||
}
|
||||
context.recording_painter().restore();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue