| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
we also have to move the inner box offset to the parent
|
|
|
|
|
| |
This allows us to unify BlockBox instantiation and block-level inner
layout calls.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifying the background area as three LayoutUnit pairs sounds clever,
but breaks down for text-align: center.
* store line Y offset in LineBox - this is necessary to pass down areas
we need to paint
* refactor addHorizontalLine loop; remove mystery "If necessary, update ictx's
width" line that used to be labeled "TODO this seems meaningless" and indeed
seems meaningless now (I am prepared to deeply regret this later)
* replace broken & convoluted startOffset/endOffset/size with a simple
seq of offsets + sizes
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous retrofitting of the old renderdocument error correction
usually worked, but it still had a horrible flaw in that it assumed that
all line boxes are of equal height. So if error was lower for some line
than another, it would move *all* lines by a somewhat lower error, and
that resulted in overlapping lines.
Now we do something much simpler: in flushLine, round each line's height
downwards before moving on to the next line. This gets rid of any blanks
inbetween lines, and also works much better with cleared floats.
|
|
|
|
|
| |
When an absolute block is a descendant of an inline box, its positioned
ancestor must be set to that box.
|
|
|
|
|
|
|
|
|
|
|
| |
We now have real inline boxes.
* Fix nesting of inline boxes
* Represent inline boxes with a hierarchical RootInlineFragment ->
InlineFragment tree
* Get rid of inline padding hack
* Get rid of ComputedFormat
* Paint inline box backgrounds properly
|
|
|
|
|
|
|
|
|
| |
* Blocks are now positioned before their text contents would be
layouted
* Untangle calcAvailableSpaceSizes's results from BlockBox
* Move a couple of objects from box -> engine
* Use Size in a few more places
* Set display to block if float is not none
|
|
|
|
|
|
| |
* remove Viewport reference from BlockBox
* Viewport -> LayoutState (call it what it really is)
* move more stuff from box -> engine
|
|
|
|
|
| |
Viewport at this point is basically just the layout state, so it
makes no sense to store it in buffer.
|
| |
|
|
|
|
|
|
| |
* rename module (window -> winattrs, to avoid conflict with env/window)
* do not use result
* remove unused cell_ratio
|
| |
|
| |
|
|
|
|
| |
Makes LineBox objects a bit smaller.
|
| |
|
| |
|
|
|
|
|
| |
Most InlineContext members may be discarded after layout, and thus
belong in InlineState.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Say we have a table
<TABLE>
<TR>
<TD WIDTH=20>a</TD>
</TR>
<TR>
<TD>aklsdfjaskdfjkl</TD>
</TR>
</TABLE>
This should be 20 pixels wide, not as wide as the second row.
Also, larger specified widths now always override previous widths
specified on the column. (I think this was a regression, but the
previous solution to this problem was an ugly hack.)
|
|
|
|
|
|
|
|
|
|
| |
* ips -> io/
* loader related stuff -> loader/
* tempfile -> extern/
* buffer, forkserver -> server/
* lineedit, window -> display/
* cell -> types/
* opt -> types/
|
|
|
|
|
| |
Now cells with a rowspan > 1 actually occupy several rows.
The implementation is quite ugly but it should work for now.
|
| |
|
|
|
|
|
| |
Re-consideration of 1e0506adb: we do need to explicitly specify padding
after all, so the rendering engine knows of it too.
|
|
|
|
|
|
| |
Factor out the "shrink" variable and the (broken) isWidthSpecified into a
SizeConstraint type.
This should make box sizing easier to reason about.
|
|
|
|
| |
Split it into smaller functions.
|
|
|
|
| |
Reduces ugly rendering caused by rounding errors.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Fix margin-top being used instead of margin-bottom.
Content width resolving makes somewhat more sense now.
min-width, max-width doesn't completely break width calculation anymore.
Finally, position: absolute is no longer implemented as a horribly
broken hack.
|
|
|
|
|
| |
by checking if the box has been positioned before. Not a very
good solution, but it works...
|
|
|
|
| |
Now at least absolute should be positioned correctly.
|
|
|
|
|
| |
Also, a hack for inline box background-color. It doesn't work very
well, but good enough for now.
|
| |
|
|
|
|
|
|
|
|
| |
Table layout: weight calculation is no longer broken. We use
maxContentWidth for this, which the first pass of a non-specified
table cell layout overrides.
pre-wrap: just a minor fix - include it in whitespacepre, now that
we have a distinction between pre and wrapping white-space
|
|
|
|
| |
Layout should only depend on cascading.
|
| |
|
|
|
|
|
| |
Get rid of compwidth, fix some edge cases where boxes would be computed
incorrectly, etc.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
min-width/max-width
min-width, max-width, min-height, max-height are mostly broken, because
they aren't enforced on inline level. Though really the whole size
calculation mechanism needs to be refactored, its current state is
horrible.
|
|
|
|
|
|
| |
Note that they don't actually work correctly because of rounding errors.
The fd sending hack now emits C directly. Let's hope this actually
works.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
(still not perfect...)
|
|
|
|
| |
mostly failed attempts to improve the table layout
|
|
|
|
|
| |
More specifically, inline block white-space is no longer incorrectly
determined by its computed values, but rather by its parent's values.
|
| |
|