1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:37:36 +00:00

LibWeb: Entirely and exactly distribute grids' extra space to tracks

Previously, the code assumed that in dividing up the space in the
affected tracks there would never be an overshoot. Instead, we can
check for each track how much extra space is left and never consume any
extra.

In the same way, we can ensure that all extra space is consumed by
distributing all remaining extra space starting from the first track.
Thus, if there is no growth limit, the space distribution should always
consume all the extra space.
This commit is contained in:
Zaggy1024 2023-09-04 08:21:15 -05:00 committed by Alexander Kalenik
parent eb7c2ee307
commit bd85e1b30b
4 changed files with 36 additions and 30 deletions

View file

@ -1,21 +1,21 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (1,1) content-size 798x65.65625 [BFC] children: not-inline
Box <body> at (10,10) content-size 780x47.65625 [GFC] children: not-inline
BlockContainer <div.foo> at (11,11) content-size 778x21.8125 [BFC] children: inline
BlockContainer <html> at (1,1) content-size 798x65.6875 [BFC] children: not-inline
Box <body> at (10,10) content-size 780x47.6875 [GFC] children: not-inline
BlockContainer <div.foo> at (11,11) content-size 778x21.84375 [BFC] children: inline
line 0 width: 33.9375, height: 21.84375, bottom: 21.84375, baseline: 16.921875
frag 0 from TextNode start: 0, length: 3, rect: [11,11 33.9375x21.84375]
"foo"
TextNode <#text>
BlockContainer <div.bar> at (11,34.8125) content-size 778x21.84375 [BFC] children: inline
BlockContainer <div.bar> at (11,34.84375) content-size 778x21.84375 [BFC] children: inline
line 0 width: 34.546875, height: 21.84375, bottom: 21.84375, baseline: 16.921875
frag 0 from TextNode start: 0, length: 3, rect: [11,34.8125 34.546875x21.84375]
frag 0 from TextNode start: 0, length: 3, rect: [11,34.84375 34.546875x21.84375]
"bar"
TextNode <#text>
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x67.65625]
PaintableBox (Box<BODY>) [9,9 782x49.65625]
PaintableWithLines (BlockContainer<DIV>.foo) [10,10 780x23.8125] overflow: [11,11 778x21.84375]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x67.6875]
PaintableBox (Box<BODY>) [9,9 782x49.6875]
PaintableWithLines (BlockContainer<DIV>.foo) [10,10 780x23.84375]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer<DIV>.bar) [10,33.8125 780x23.84375]
PaintableWithLines (BlockContainer<DIV>.bar) [10,33.84375 780x23.84375]
TextPaintable (TextNode<#text>)

View file

@ -1,21 +1,21 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (1,1) content-size 798x56.90625 [BFC] children: not-inline
Box <body> at (10,10) content-size 780x38.90625 [GFC] children: not-inline
BlockContainer <div.foo> at (11,11) content-size 778x17.4375 [BFC] children: inline
BlockContainer <html> at (1,1) content-size 798x56.9375 [BFC] children: not-inline
Box <body> at (10,10) content-size 780x38.9375 [GFC] children: not-inline
BlockContainer <div.foo> at (11,11) content-size 778x17.46875 [BFC] children: inline
line 0 width: 27.15625, height: 17.46875, bottom: 17.46875, baseline: 13.53125
frag 0 from TextNode start: 0, length: 3, rect: [11,11 27.15625x17.46875]
"foo"
TextNode <#text>
BlockContainer <div.bar> at (11,30.4375) content-size 778x17.46875 [BFC] children: inline
BlockContainer <div.bar> at (11,30.46875) content-size 778x17.46875 [BFC] children: inline
line 0 width: 27.640625, height: 17.46875, bottom: 17.46875, baseline: 13.53125
frag 0 from TextNode start: 0, length: 3, rect: [11,30.4375 27.640625x17.46875]
frag 0 from TextNode start: 0, length: 3, rect: [11,30.46875 27.640625x17.46875]
"bar"
TextNode <#text>
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x58.90625]
PaintableBox (Box<BODY>) [9,9 782x40.90625]
PaintableWithLines (BlockContainer<DIV>.foo) [10,10 780x19.4375] overflow: [11,11 778x17.46875]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x58.9375]
PaintableBox (Box<BODY>) [9,9 782x40.9375]
PaintableWithLines (BlockContainer<DIV>.foo) [10,10 780x19.46875]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer<DIV>.bar) [10,29.4375 780x19.46875]
PaintableWithLines (BlockContainer<DIV>.bar) [10,29.46875 780x19.46875]
TextPaintable (TextNode<#text>)