1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 08:54:58 +00:00
serenity/Userland/Services
Aliaksandr Kalenik ac6b3c989d LibWeb: Apply scroll boxes offsets after painting commands recording
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.
2023-12-30 11:10:24 +01:00
..
AudioServer AudioServer: Clean up ClientAudioStream APIs 2023-08-12 12:22:16 -06:00
ChessEngine AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
Clipboard Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ConfigServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
CrashDaemon Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
DeviceMapper Everywhere: Avoid calling from_utf8 on FlyString or String 2023-12-10 09:45:03 +01:00
DHCPClient Kernel: Properly support the SO_BROADCAST socket option 2023-12-24 22:22:58 +01:00
EchoServer Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
FileOperation Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
FileSystemAccessServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ImageDecoder Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
KeyboardPreferenceLoader KeyboardPreferenceLoader: Remove usage of DeprecatedFile 2023-04-27 07:29:49 +02:00
LaunchServer Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
LoginServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LookupServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
NetworkServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
NotificationServer NotificationServer: Make notifications not overlap when they appear 2023-11-05 09:06:33 +01:00
RequestServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SpiceAgent Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SQLServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SystemServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Taskbar Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
TelnetServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebContent LibWeb: Apply scroll boxes offsets after painting commands recording 2023-12-30 11:10:24 +01:00
WebDriver Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
WebServer Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebSocket Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebWorker LibWeb+WebWorker: Convert Workers to use MessagePorts for postMessage 2023-12-25 12:09:11 +01:00
WindowServer Userland: Actually use the correct character map index from KeyEvent 2023-12-29 16:40:59 +01:00
CMakeLists.txt LibWeb+WebWorker: Move worker execution into a new WebWorker process 2023-11-15 12:56:33 +01:00