mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:54:58 +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. |
||
---|---|---|
.. | ||
AudioServer | ||
ChessEngine | ||
Clipboard | ||
ConfigServer | ||
CrashDaemon | ||
DeviceMapper | ||
DHCPClient | ||
EchoServer | ||
FileOperation | ||
FileSystemAccessServer | ||
ImageDecoder | ||
KeyboardPreferenceLoader | ||
LaunchServer | ||
LoginServer | ||
LookupServer | ||
NetworkServer | ||
NotificationServer | ||
RequestServer | ||
SpiceAgent | ||
SQLServer | ||
SystemServer | ||
Taskbar | ||
TelnetServer | ||
WebContent | ||
WebDriver | ||
WebServer | ||
WebSocket | ||
WebWorker | ||
WindowServer | ||
CMakeLists.txt |