about summary refs log tree commit diff stats
path: root/test/layout
Commit message (Collapse)AuthorAgeFilesLines
* render: actually fix the "extra unnecessary line" bugbptato2025-01-2131-31/+0
| | | | Plus remove addLines, it's no longer very useful.
* render: blend in paintBackgroundbptato2025-01-215-5/+0
| | | | | | | It's an improvement, but the painting order still isn't quite right... Also fixes a bug where paintBackground would unnecessarily append an extra line to the document's end.
* cssvalues: support percentage rgb colors, hsl & hslabptato2025-01-212-3/+25
| | | | hsl is quite popular these days.
* cssvalues: fix rgba() function parsingbptato2025-01-202-0/+5
|
* cascade: support nested variablesbptato2025-01-202-1/+14
| | | | ...and refactor applyValue in the process.
* render: fix formatting being lost outside boxes with bgcolorbptato2025-01-174-0/+12
| | | | | | An ancient bug, but the fix seems to be quite simple: stop confusing the last X position before the existing string on the line with the last X position that the new string occupies.
* render: overprint existing text when painting backgroundsbptato2025-01-161-3/+3
| | | | | | | | Even if we don't do some z-ordering correctly, it's no excuse to paint boxes incorrectly. It's also extremely annoying when I try to use a menu and text bleeds into the drop-down window.
* cascade: basic CSS variable supportbptato2025-01-162-0/+9
| | | | | | | | | | | and once again, there was light... Well, it barely works, but it's enough to get colors back on most sites. Nested variables aren't supported for now, and shorthand expansion only "works" for `background' (it's a hack). Props to the W3C for introducing the C preprocessor to CSS - I was starting to confuse it with JSSS after calc().
* quirk.css, ua.css: adjust marginsbptato2025-01-161-0/+1
|
* widthconv: fix hiragana -> half-width kana conversionbptato2025-01-152-0/+4
| | | | Unicode has no half-width hiragana :/
* ua.css: fix select multiple renderingbptato2025-01-152-0/+18
|
* cssvalues, sheet: fix quotes parsing, misc cleanupbptato2025-01-122-0/+4
|
* layout: clear intrinsic minimum block size on shrink-to-fit relayoutbptato2025-01-082-0/+12
| | | | starting to run out of test case names
* cssparser, mediaquery: factor out tflagb, fix a media query bugbptato2025-01-072-0/+5
| | | | @media (grid: 1) works again.
* layout: get rid of flex-direction reverse hackbptato2025-01-072-0/+9
| | | | | This must not be handled by the tree builder, as that needlessly complicates tree caching.
* layout: wrap on inline floats that exceed the line's lengthbptato2025-01-062-0/+25
| | | | | | | In this case, it seems we have to wrap. (It's still not quite there; replace flow-root with inline-box to see another interesting bug...)
* layout, render: establish absolute container with position: stickybptato2025-01-062-0/+10
| | | | We do not support sticky scrolling, but this much should still work.
* layout: fix percentage margins in shrink-to-fitbptato2025-01-052-0/+12
| | | | | | | | Turns out this doesn't work like I thought it does... the second layout is always needed. This probably means that it's possible to layout absolutes during flow after all...
* ua.css: set table box-sizing border boxbptato2025-01-054-14/+14
|
* layout: margin fixesbptato2025-01-051-0/+1
| | | | | | | | * respect flex item starting margin on main axis * pass left margin as offset input too -> fixes some sub-layout cache inconsistencies well, I *think* it does, but I haven't managed to find a case where it changes anything... either way, at least the code is prettier now
* layout: respect margin-top of root boxbptato2025-01-032-0/+4
|
* layout: implement layoutFlexItem as layoutRootBlockbptato2025-01-022-0/+45
| | | | | | | This way, it benefits from sub-layout caching. Which is great because our flex layout likes to unnecessarily redo item layout... Also, we now account for the bottom margin in flex items.
* pager: history fixesbptato2025-01-011-0/+1
| | | | | | | | | * add failed buffers to history too * make buffer.history and siteconf history actually do something * prevent history in dump mode after retry too * disable history in test configs ref. https://todo.sr.ht/~bptato/chawan/39
* layout, dom: input rendering fixesbptato2025-01-014-0/+12
| | | | | * do not display submit/reset text with empty value * fix erroneous blank placement with white-space: pre on new line
* layout: fix regression in cd069a76ebptato2025-01-012-1/+7
|
* layout: prevent double-clear for flow rootsbptato2025-01-012-0/+29
| | | | I don't like the extra flag, but I don't see a better way.
* cascade: prevent blockification for non-inline absolute boxesbptato2024-12-302-0/+38
| | | | The standard says we should blockify. Alas, the standard is lying.
* layout: absolute sizing fixesbptato2024-12-304-0/+97
|
* layout: fix position: relative for right, bottombptato2024-12-302-0/+15
| | | | | | | They are relative to the box's actual position, not that of the parent: > For relatively positioned boxes, the offset is with respect to the > bottom edge of the box itself.
* layout: fix an overflow bugbptato2024-12-302-0/+26
|
* cssvalues: fix length shorthand parsingbptato2024-12-301-3/+2
|
* cssvalues: fix font-weight parsingbptato2024-12-292-1/+2
| | | | | | you can't bisearch an unsorted map... (also, turn on text styling for colored layout tests because it would have caught this)
* layout: fix various padding bugsbptato2024-12-282-0/+26
| | | | | | | | They need some peculiar conditions to manifest, but the logic errors are clear: * padding contributing to intrinsic minimum size wasn't being clamped * inline padding was being applied twice
* layout: fix a flex sizing bugbptato2024-12-272-0/+14
| | | | | it has to accept percentage sizes too for intrinsic size clamping, it seems
* layout: improve intrinsic minimum size calculationbptato2024-12-269-2/+121
| | | | | It's a fair bit more accurate now on flex-heavy pages. Image sizing remains a broken mess.
* layout: resolve percentage width for auto table cellsbptato2024-12-212-0/+10
| | | | | It is still wrong in case the table is too small, but at least it fixes the regression from 0971ad85.
* cascade: actually, it should be inline-blockbptato2024-12-202-0/+17
| | | | what was I expecting
* cascade: blockify on position: absolute or fixedbptato2024-12-201-0/+1
| | | | | | | | | | | | | | Welp, turns out I was overthinking it. CSS does not support inline position: absolute at all, it just blockifies. That does leave us with the question of "why does inline-block behave differently than block?" Especially because both in Gecko and Blink, getComputedStyle for absolute inline-blocks gives me "block", not "inline-block", and yet there is the same difference in rendering when I change the CSS. I first thought it's a quirks mode issue, but standards mode doesn't affect it. Wat.
* layout: apply padding to intrinsic minimum widthbptato2024-12-192-0/+5
|
* match: fix nested hover selectorbptato2024-12-182-0/+10
| | | | | | | I didn't get it right :( true is the default return value, and true + continue should resolve to false.
* dom, match: optimize :nth-child, :nth-last-childbptato2024-12-172-0/+91
| | | | | | I want to use it in the UA sheet, so the loop won't cut it. (Also fix a parsing bug that prevented "of" from working.)
* Fix test casebptato2024-12-171-1/+1
|
* layout: propagate intrinsic minimum heightbptato2024-12-1712-0/+75
| | | | | | | | | | | | Necessary for flex. Previously we just used the actual height, but that didn't account for boxes that size themselves depending on the available height (mainly just images for now). This also irons out intrinsic min width calculation somewhat, squashing several bugs. I hope it works well. It is a significant change in size calculation, so maybe there are still new bugs lurking.
* layout: do not allow canpx for scFitContentbptato2024-12-152-0/+6
| | | | | The test case attached is undefined in CSS 2.1, but css-sizing-3 wants us to just ignore the width property (I think).
* layout: set table intrinsic min width to specified widthbptato2024-12-152-0/+18
|
* layout: do not trust specified table cell heightbptato2024-12-152-0/+10
| | | | | If the contents are larger than the specified cell height, then it is simply ignored.
* dom, css: fix case-insensitive class/id/attr matchingbptato2024-12-152-0/+21
| | | | Uses an additional lower-case map for O(1) case-insensitive comparisons.
* render: apply visibility to inline boxesbptato2024-12-102-0/+5
|
* layout: override table cell width if its min width is greaterbptato2024-12-102-0/+15
| | | | We can do this now that xminwidth is more accurate.
* layout: another xminwidth kludgebptato2024-12-082-0/+11
| | | | yeah idk