| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Without this we were wrapping on the last dash (if any) inside CJK
sentences.
|
|
|
|
|
|
| |
Crucially, *only* between full-width characters.
So "あ\nあ" is rendered as "ああ", but "あ\na" remains "あ a" (with a
space inbetween).
|
|
|
|
|
|
| |
* move out half width <-> full width converters
* snake_case -> camelCase
* improve toScreamingSnakeCase slicing
|
| |
|
|
|
|
|
| |
When an absolute block is a descendant of an inline box, its positioned
ancestor must be set to that box.
|
| |
|
|
|
|
|
|
|
| |
* Makefile: fix parallel build, add new binaries to install target
* twtstr: split out libunicode-related stuff to luwrap
* config: quote default gopher2html URL env var for unquote
* adapter/: get rid of types/url dependency, use CURL url in all cases
|
|
|
|
|
| |
Avoid computing e.g. charwidth data for http which does not need it
at all.
|
|
|
|
|
| |
* start from 1
* divide by total - 1, since we are counting the rounding error between each line
|
|
|
|
|
|
|
| |
Probably not fully correct, but it's a good start.
Includes proprietary extension -cha-half-width, which converts
full-width characters to half-width ones.
|
|
|
|
|
|
|
|
|
|
| |
Instead, position them at the end of their block's layout pass.
Without this, they could be positioned too early, as the grandparent's
position being resolved does not guarantee that the parent's position
has already been resolved as well.
(Unlike the comment suggests, flushMargins is not appropriate there.)
|
|
|
|
|
| |
* Actually calculate rounding error
* Skip a loop over lines by accumulating rounding error in finishLine
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
* Add clear CSS property
* Fix some margin resolution bugs
* Apply min-height, max-height to inner inline outer block boxes
|
|
|
|
| |
No need for the options.
|
|
|
|
|
|
|
|
| |
* Merged float and inline-block size calculation
* Set min-height, max-height for floats
* Fix incorrect positioning of inline atoms with margins
* Respect box-sizing in more places
* Do not flush remaining margins in layoutRootBlock as top margin
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
yay!!!!
* Add support for float: left, float: right
Also, misc stuff:
* Add support for display: flow-root
* Set line width to the maximum allowed width on line wrap
* Various refactorings
Still todo: support clear
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
merge positionBlocks with buildBlocks
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
| |
bugfix, bugfix...
|
| |
|
| |
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
Turns out we had the row groups separated for a reason: we need them
so we can implicitly sort rows based on their row group type.
|
|
|
|
| |
the iterator here was rather pointless
|
|
|
|
|
|
| |
Specifically, we used to set the width computed value of table cells
manually in the past. It was a hack that never worked very well, and has
been unnecessary ever since we switched to SizeConstraints.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Re-consideration of 1e0506adb: we do need to explicitly specify padding
after all, so the rendering engine knows of it too.
|
|
|
|
|
|
| |
In the tab width case, only whitespacenum was being divided instead of
charwidth + whitespacenum, which resulted in an exponential growth of
both charwidth and whitespacenum.
|
|
|
|
|
| |
So e.g. padding: 1px does not inhibit automatic addition of spaces
for inline blocks.
|
| |
|
|
|
|
| |
Still not perfect, but at least not completely broken.
|