| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We do this by moving InlineFragmentMap::fixup into InlineFragments
|
| |
|
|
|
|
| |
I tried to make sure to keep 'box' where it made sense, and alter comments so they still make sense.
|
| |
|
|
|
|
| |
This isolates layout code from upcoming refactoring in properties.rs.mako.
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Before we had Vec<T>, Option<~[T]> was used as an optimization of ~[T]
to avoid allocating for empty vectors when that was the common case.
Vec<T> itself does this optimization, so there is no need for this anymore.
|
|/ |
|
|
|
|
| |
This allows for generic +ve/-ve offsets
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
We can't replace the ones in the `style` crate because some functions expect generic `SmallVec`s.
I also did some reorganisation of the `smallvec` macros.
cc @pcwalton
|
| |
| |
| |
| | |
We can't replace the ones in the `style` crate because some functions expect generic `SmallVec`s.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overflow correctly, and opportunistically lay out blocks in parallel
even if floats are present.
This commit fixes the `inline-height-test` in Acid2 by implementing
proper overflow as well as the inline "strut". (See CSS 2.1 § 10.8.1.)
Acid2 was accidentally being rendered properly before because tables'
descendant flows were not being laid out properly.
Display list building is now parallel and is done by bubbling up display
items and layers from parent to child. Speedups of around 60%-70% are
observed on Wikipedia with a 4-core HyperThreaded Core i7. More
optimizations are possible; this is just a start.
To minimize the amount of data that needs to be bubbled up, as well as
to make proper handling of `overflow: hidden` clipping easier, the
`StackingContext` abstraction is now purely internal to the display
list. That is, instead of placing items into a stacking context
directly, display items are placed into display lists alongside a
stacking level. When a stacking context is complete, it is flattened
with the the `flatten` method, which shuffles the display items that
make up the context into their proper order while handling clipping
properly.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from `Flow`s; in the process, remove `InlineInfo` in favor of the
range-based design that was originally planned and halfway implemented.
Now, the DOM tree structure for inline flows is reflected not by a
series of arrays but instead by a flat list of ranges into the list of
boxes. As part of this, the `border` and `padding` fields, which were
incorrect in the case of inlines and necessitated separate
`noncontent_inline_foo` methods, have been merged into a single
`border_padding` field that is always guaranteed to be correct after
width assignment, even for inlines.
|
|
|
|
|
|
| |
April 10, 2014. The main changes are to privacy, to work around the
issues with incorrect bounds on the libstd `Arc<Mutex<T>>`, and the
various API changes strewn throughout the libraries.
|
|
|
|
| |
ElementTypeId.
|
| |
|
|\
| |
| |
| | |
If <span> element has pseudo style, draw pseudo element.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
| |
descendant links separately
|
|
|
|
|
| |
Not Covered: step 1-3, 1-4, 3-1, 3-2
*Spec: http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes
|
| |
|
|\
| |
| |
| | |
Fix #1828
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
Add reftests for replaced and nested absolute flows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only traverses absolute flows, nothing else.
+ Also, a separate mini-traversal for store overflow.
+ Store descendants with position 'absolute' and 'fixed' in BaseFlow.
+ Bubble up links to absolute and fixed descendants during Flow Construction.
+ Set Rawlink to the CB in absolute descendants.
+ store_overflow() now uses absolute descendants' overflows too.
+ Add reftests for 'absolute' and 'fixed' static y position.
+ Add reftests for overflow (they all fail now).
+ Put absolute flow display items under their CB's ClipDisplayItem.
+ Paint borders in Box_ before the actual box stuff (minor fix in lieu of paint-order).
|
|
|
|
|
|
|
|
|
|
|
| |
+ Re-implement fixed positioning using the absolute positioning code.
+ Add reftests for absolute positioning and fixed positioning.
+ Refactor assign_widths in BlockFlow to isolate the calculation of
widths and margins.
+ Pass down details of the Containing Block for absolute and fixed flows
during layout. Use it to calculate the static position of absolute flows.
+ Defer calculation of absolute flow dimensions till we build the
display list.
|
|\
| |
| |
| |
| | |
Simple change. I hope I'm using github correctly; I'm not too familiar with the PR system. Fixes #1777.
|
| | |
|
|/
|
|
|
|
| |
This rewrites the float context to avoid dynamic failures resulting from
`.clone()` misuse. It also renames the float context to the simpler
`Floats`. The new version is modeled on WebKit's `FloatingObjects`.
|
| |
|