Emilio Cobos Álvarez
ef16c5844f
Rustfmt recent changes.
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
e885ccb7ae
layout-2020: build fixes.
2019-12-16 14:23:56 +01:00
Anthony Ramine
ace052ddbb
Handle cursor and hit testing in 2020
2019-12-13 17:59:27 +01:00
Anthony Ramine
abc2c15c28
Store an OpaqueNode in boxes and fragments
2019-12-13 17:59:27 +01:00
Anthony Ramine
47944a39fc
Remove the Node type parameter from Contents
...
We now pass the Node as an argument during DOM traversal in layout.
2019-12-13 17:51:06 +01:00
Anthony Ramine
b2f6cc7144
Introduce BlockLevelJob
2019-12-13 17:51:06 +01:00
Anthony Ramine
fb1891f436
Add NodeExt::as_opaque
2019-12-13 17:51:06 +01:00
Simon Sapin
6f3c5ce773
Rename BlockLevelKind
to NonReplacedContents
2019-12-13 13:59:15 +01:00
Simon Sapin
58b7005a9b
Make for_maybe_position_relative
take care of relative adjustment.
2019-12-13 13:13:50 +01:00
Simon Sapin
b218957461
Rename CollectedAbsolutelyPositionedBox
to HoistedAbsolutelyPositionedBox
2019-12-13 12:44:05 +01:00
Simon Sapin
04b701b9e0
Move call to for_maybe_position_relative
out of layout_in_flow_non_replaced_block_level
2019-12-13 12:41:58 +01:00
Simon Sapin
672d971d58
Regroup branches specific to SameFormattingContextBlock
2019-12-13 12:33:07 +01:00
Simon Sapin
c0962aa3fc
Replace the closure in layout_in_flow_non_replaced_block_level
with an enum
2019-12-13 12:09:51 +01:00
Simon Sapin
53a8a609d2
Fix a width v.s. height confusion bug in abspos layout
2019-12-13 00:09:43 +01:00
Simon Sapin
5ebddf19e6
Layout position: fixed
in the initial containing block
2019-12-12 22:50:11 +01:00
Simon Sapin
c44ee516a1
Give PositioningContext
more responsibilities
...
Iits details are now private to the module.
It has a couple methods that take closures to make sure that "before" and "after" steps are done together:
* In an absolutely positioned box, take care of nested abspos (establish a new containing block, etc.)
* For a box that *might* be `position: relative`, optionally take care of the same.
2019-12-12 22:50:11 +01:00
Simon Sapin
1c8d14ac0d
Upgrade rayon_croissant to 0.2.0
2019-12-12 18:57:18 +01:00
Simon Sapin
9edda952c9
Make adjust_static_positions a method of PositioningContext
2019-12-12 15:43:50 +01:00
Simon Sapin
b43a3de51d
Introduce PositioningContext
2019-12-12 15:37:01 +01:00
Simon Sapin
c895e3d236
Disable use of rayon with --layout-threads 1
instead of panicking
2019-12-10 18:41:24 +01:00
Simon Sapin
53ce714005
Fix a “Accessing content size that was not requested” panic
...
Percentage `width` are treated as `auto` for the purpose of
min/max-content computation, so they also need to be considered
when testing “wether width is auto”
2019-12-10 15:11:53 +01:00
Simon Sapin
a17db217a1
Struct with named fields over large tuple
2019-12-10 15:11:53 +01:00
Simon Sapin
be8df1d114
Move solve_axis
function to module level
2019-12-10 15:11:53 +01:00
Simon Sapin
29067225a4
Conditionsals over closures
2019-12-10 15:11:53 +01:00
Simon Sapin
c07c980501
Delayed initialization over mutation
2019-12-10 15:11:53 +01:00
Simon Sapin
1fa20e93d0
Implement replaced abspos
2019-12-10 15:11:53 +01:00
Simon Sapin
1fcdde99cb
Move two AbsoluteBoxOffsets fields into a Vec2
2019-12-10 15:11:53 +01:00
Simon Sapin
f09c14aa6b
impl From<&'_ DefiniteContainingBlock> for ContainingBlock
2019-12-10 15:11:53 +01:00
Simon Sapin
14ddf39215
Rename ReplacedContent::used_size to used_size_as_if_inline_element
2019-12-10 15:11:53 +01:00
Simon Sapin
e86222d6bb
Remove AbsoluteBoxOffsets’s type parameter
2019-12-10 15:11:53 +01:00
Simon Sapin
f43dc3afcb
Remove inline/block_size from AbsolutelyPositionedFragment
2019-12-10 15:11:53 +01:00
Simon Sapin
80b2b5fb5e
Fix min/max-content of replaced boxes
2019-12-10 15:11:53 +01:00
Simon Sapin
8996be3c5e
Don’t assume replaced elements have an intrinsic size
2019-12-10 15:11:53 +01:00
Simon Sapin
b73eb49a58
Add sizing of inline replaced boxes
2019-12-10 12:36:43 +01:00
Simon Sapin
c40583b644
Move replaced box used size computation to a method of ReplacedContents
2019-12-10 12:36:43 +01:00
Simon Sapin
bf96988260
Add min/max-width/height support for inline-block
...
(… and other non-replaced atomic inline-level boxes.)
2019-12-10 12:36:43 +01:00
Simon Sapin
999dd72895
Account for min/max-width in outer intrinsic sizing
2019-12-10 12:36:43 +01:00
Simon Sapin
ce7e84be72
Replace percent_resolved_*
functions with methods
2019-12-10 12:36:43 +01:00
Simon Sapin
a2c2b294d5
Move clamp_*
functions to methods of Length
2019-12-10 12:36:43 +01:00
Simon Sapin
9f4b1a0f14
Implement text-align
(except justify
)
2019-12-07 14:31:45 +01:00
Simon Sapin
6d91d77fba
Rename content_rect to rect in TextFragment and ImageFragment
...
Since they don’t have padding etc.
2019-12-07 14:25:16 +01:00
Simon Sapin
ce9fc3e651
Rename LineBoxes to Lines, since it contains fragments
2019-12-07 14:25:16 +01:00
Simon Sapin
fa1adf2ad3
Containing blocks contains styles rather than just a writing mode
2019-12-07 14:25:16 +01:00
Simon Sapin
40ad9a722d
Use the WritingMode bitflags from Stylo
2019-12-07 12:45:36 +01:00
bors-servo
e70397d90a
Auto merge of #25033 - servo:intrinsic, r=nox
...
Add support for inline-block and for computing min/max-content
2019-12-04 16:23:33 -05:00
Anthony Ramine
4ebdc39ecd
Add some helpers to resolve percentages of box sizes
2019-12-04 17:24:45 +01:00
Simon Sapin
dd9dfc66e3
Use a new BoxContentSizes
enum instead of Option<ContentSizes>
2019-12-04 15:36:05 +01:00
Simon Sapin
38e8fd1e99
Replace boolean parameters by a new ContentSizesRequest
enum
2019-12-04 15:10:11 +01:00
Simon Sapin
6763e7e4ae
Review nits
2019-12-04 14:22:13 +01:00
Simon Sapin
607df04849
Replace a large tuple return type with a new struct
2019-12-04 13:56:42 +01:00