ladybird/Userland
Andreas Kling 412b2313f3 LibWeb: Improve inline flow around floating boxes
This patch combines a number of techniques to make inline content flow
more correctly around floats:

- During inline layout, BFC now lets LineBuilder decide the Y coordinate
  when inserting a new float. LineBuilder has more information about the
  currently accumulated line, and can make better breaking decisions.

- When inserting a float on one side, and the top of the newly inserted
  float is below the bottommost float on the opposite side, we now reset
  the opposite side back to the start of that edge. This improves
  breaking behavior between opposite-side floats.

- After inserting a float during inline layout, we now recalculate the
  available space on the line, but don't adjust X offsets of already
  existing fragments. This is handled by update_last_line() anyway,
  so it was pointless busywork.

- When measuring whether a line can fit at a given Y coordinate, we now
  consider both the top and bottom Y values of the line. This fixes an
  issue where the bottom part of a line would bleed over other content
  (since we had only checked that the top Y coordinate of that line
  would fit.)

There are some pretty brain-dead algorithms in here that we need to make
smarter, but I didn't want to complicate this any further so I've left
FIXMEs about them instead.
2022-09-16 15:15:50 +02:00
..
Applets Everywhere: Use my very shiny serenityos.org email :^) 2022-09-12 15:13:12 +01:00
Applications Calculator: Change internal representation to support perfect division 2022-09-15 14:08:21 +01:00
Demos Tubes: Run clang-format 2022-09-11 23:24:33 +01:00
DevTools Everywhere: Fix a variety of typos 2022-09-14 04:46:49 +00:00
DynamicLoader LibPthread: Implement named semaphores 2022-07-21 16:39:22 +02:00
Games Everywhere: Use my very shiny serenityos.org email :^) 2022-09-12 15:13:12 +01:00
Libraries LibWeb: Improve inline flow around floating boxes 2022-09-16 15:15:50 +02:00
Services Everywhere: Remove a bunch of dead write-only variables 2022-09-16 05:39:28 +00:00
Shell Shell: Fix 'Command:' output for built-in 'time' command 2022-09-16 05:38:09 +00:00
Utilities uniq: Improve POSIX compliance 2022-09-09 14:11:52 +01:00
CMakeLists.txt Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake option 2022-05-02 01:46:18 +02:00