mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:57:44 +00:00
LibWeb: Clamp scroll offset into valid range after relayout
If the layout has been recalculated and the sizes of scrollable overflow rectangles could have changed, we need to ensure that scroll offsets remain within the valid range.
This commit is contained in:
parent
155070cfd8
commit
309259aeb6
3 changed files with 45 additions and 0 deletions
36
Tests/LibWeb/Text/input/resize-scrollable-box.html
Normal file
36
Tests/LibWeb/Text/input/resize-scrollable-box.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<style>
|
||||
.scrollable-div {
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
border: 10px magenta solid;
|
||||
}
|
||||
|
||||
span {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-block;
|
||||
border: 10px solid #000;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div class="scrollable-div">
|
||||
<span>Item 1</span><span>Item 2</span><span>Item 3</span><span>Item 4</span
|
||||
><span>Item 5</span><span>Item 6</span><span>Item 7</span><span>Item 8</span
|
||||
><span>Item 9</span><span>Item 10</span><span>Item 11</span><span>Item 12</span>
|
||||
</div>
|
||||
</body>
|
||||
<script src="./include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
const scrollableDiv = document.querySelector('.scrollable-div');
|
||||
scrollableDiv.scrollLeft = scrollableDiv.scrollWidth;
|
||||
println("scrollLeft (before resize): " + scrollableDiv.scrollLeft);
|
||||
document.body.style.width = '600px';
|
||||
println("scrollLeft (after resize): " + scrollableDiv.scrollLeft);
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue