1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:47:45 +00:00

LibWeb: Use clip rectangles assigned to paintables in hit-testing

This change makes hit-testing more consistent in the handling of hidden
overflow by reusing the same clip-rectangles.

Also, it fixes bugs where the box is visible for hit-testing even
though it is clipped by the hidden overflow of the containing block.
This commit is contained in:
Aliaksandr Kalenik 2024-01-30 10:02:07 +01:00 committed by Andreas Kling
parent d3b983b201
commit 16f1962f10
8 changed files with 64 additions and 28 deletions

View file

@ -0,0 +1,23 @@
<script src="../include.js"></script>
<style>
.overflow-hidden {
overflow: hidden;
border: 1px solid black;
width: 200px;
height: 200px;
}
#box {
width: 400px;
height: 400px;
background-color: red;
}
</style>
<div class="overflow-hidden">
<div id="box"></div>
</div>
<script type="text/javascript">
test(() => {
printElement(internals.hitTest(300, 300).node);
});
</script>

View file

@ -0,0 +1,29 @@
<script src="../include.js"></script>
<style>
.overflow-hidden {
overflow: hidden;
border: 1px solid black;
width: 200px;
height: 200px;
}
#box {
width: 400px;
height: 400px;
}
</style>
<div class="overflow-hidden">
<div id="box">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan semper massa
ut pharetra. Nunc vitae lorem at odio facilisis vehicula nec ut nibh. Duis ornare nibh orci,
nec mollis est mollis ac. Aenean ultricies condimentum interdum. In eu elit vestibulum,
sollicitudin lectus vel, congue nibh. Morbi vitae nunc in tortor ultrices aliquet sit amet a
turpis. Phasellus ut dui sodales, dictum sem ut, efficitur tellus. Etiam eu orci et magna
suscipit dignissim nec et sem. Aenean quam erat, euismod eu faucibus et, placerat ut dolor.
</div>
</div>
<script type="text/javascript">
test(() => {
printElement(internals.hitTest(300, 300).node);
});
</script>