mirror of
https://github.com/RGBCube/serenity
synced 2026-01-20 21:11:00 +00:00
With this change, instead of applying scroll offsets during the recording of the painting command list, we do the following: 1. Collect all boxes with scrollable overflow into a PaintContext, each with an id and the total amount of scrolling offset accumulated from ancestor scrollable boxes. 2. During the recording phase assign a corresponding scroll_frame_id to each command that paints content within a scrollable box. 3. Before executing the recorded commands, translate each command that has a scroll_frame_id by the accumulated scroll offset. This approach has following advantages: - Implementing nested scrollables becomes much simpler, as the recording phase only requires the correct assignment of the nearest scrollable's scroll_frame_id, while the accumulated offset from ancestors is applied subsequently. - The recording of painting commands is not tied to a specific offset within scrollable boxes, which means in the future, it will be possible to update the scrolling offset and repaint without the need to re-record painting commands. |
||
|---|---|---|
| .. | ||
| images | ||
| anonymous-wrapper-css-visibility-ref.html | ||
| background-size-calc-ref.html | ||
| body-link-attribute-ref.html | ||
| border-radius-ref.html | ||
| border-radius-shrink-zero-sized-box-ref.html | ||
| canvas-fillstyle-rgb.html | ||
| canvas-path-rect-ref.html | ||
| clip-abspos-children-ref.html | ||
| clip-ref.html | ||
| css-any-link-selector-ref.html | ||
| css-attr-typed-ref.html | ||
| css-background-position-ref.html | ||
| css-background-repeat-ref.html | ||
| css-backgrounds-ref.html | ||
| css-gradient-currentcolor-ref.html | ||
| css-gradients-ref.html | ||
| css-invalid-var-ref.html | ||
| css-lang-selector-ref.html | ||
| css-local-link-selector-ref.html | ||
| css-open-closed-selectors-ref.html | ||
| css-placeholder-shown-selector-ref.html | ||
| css-quotes-ref.html | ||
| css-read-only-read-write-selectors-ref.html | ||
| grid-items-painting-order-ref.html | ||
| img-srcset-viewport-relative-sizes-ref.html | ||
| inline-node-ref.html | ||
| input-placeholder-ref.html | ||
| item-with-negative-z-index-ref.html | ||
| meter-ref.html | ||
| object-fit-position-ref.html | ||
| opacity-stacking-ref.html | ||
| outer-box-shadow-ref.html | ||
| overflow-hidden-2-ref.html | ||
| overflow-hidden-ref.html | ||
| positioned-elements-in-scroll-container-ref.html | ||
| scrollable-box-with-nested-stacking-context-ref.html | ||
| separate-borders-ref.html | ||
| simple-svg-mask-ref.html | ||
| square-ref.html | ||
| svg-file-matches-html-file.html | ||
| svg-gradient-spreadMethod-ref.html | ||
| svg-radialGradient-ref.html | ||
| svg-stroke-paintstyle-with-opacity-ref.html | ||
| svg-symbol-ref.html | ||
| svg-text-effects-ref.html | ||
| svg-textPath-ref.html | ||
| svg-use-defined-earlier.html | ||
| text-div.html | ||
| text-shadow-ref.html | ||
| unicode-range-ref.html | ||