about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* buffer: copy lessbptato2024-06-141-8/+10
|
* buffer: decoding fixesbptato2024-06-143-46/+48
| | | | | | * simplify processData * set document charset on creation * update chagashi
* Update Chame, Chagashibptato2024-06-137-149/+46
|
* cssvalues: add "clear" to table wrapper boxbptato2024-06-111-1/+3
| | | | this one is weird but I'm sure the standard is technically right
* pager: actually fix broken logicbptato2024-06-091-2/+2
| | | | | | | | ok we block if: * method is not GET * scheme is different * it is not the case that both the current and the target schemes are http/s
* pager: fix broken logicbptato2024-06-091-3/+3
| | | | bleh
* dom: simplify window.loaderbptato2024-06-093-29/+18
| | | | the Option setup hasn't made much sense for a long time now
* pager: send Accept: */* for viewImagebptato2024-06-081-2/+7
|
* buffer: add autofocusbptato2024-06-087-101/+129
| | | | naturally, it's opt-in
* pager, buffer: improve forms, protocol configbptato2024-06-085-173/+158
| | | | | | * refactor form submission * add options to specify form handling per protocol * block cross-protocol POST requests
* layout: minor cleanupbptato2024-06-041-7/+4
|
* layout: track overflow sizebptato2024-06-042-48/+130
| | | | | | Not very useful yet; partial layouting and/or a new renderer is probably necessary to replace the current FormatCell-based node placement, otherwise it will be unbearably slow.
* Move JS wrapper into Monouchabptato2024-06-0350-3796/+234
| | | | Operation "modularize Chawan somewhat" part 3
* js: improve jsregex interfacebptato2024-06-032-30/+25
| | | | | | | It's easier to just use nested seqs here. (This also fixes reverse-search highlighting the last capture group instead of the whole match.)
* js: change jsstfunc syntaxbptato2024-06-033-4/+4
| | | | | | Interface:function -> Interface.function for consistency with regular JS syntax
* js: fix runtime cleanupbptato2024-06-032-18/+33
| | | | | | | | | | | | | | This is a minefield. Intuitively, you would think that just clearing the opaque and manually freeing registered object should be enough. Unfortunately, this is not true; we do not store whether we are actually holding a reference to registered JS objects, so this approach leads to double frees. Instead, we add a QJS callback that is called right after the final GC cleanup, but before the list_free assertion. This way, we can be sure that any object still in our registry is referenced by us, and can therefore unreference them safely.
* js: small misc changesbptato2024-06-021-13/+15
| | | | just sync'ing
* css: slightly optimize cascadebptato2024-06-024-136/+145
| | | | Parse rule values in sheet addRule, not during cascade.
* renderdocument: handle overlapping double width charsbptato2024-06-021-1/+6
| | | | | See attached test case; previously, this would result in a missing space in visual mode and a crash in dump mode.
* layout: misc refactoringsbptato2024-06-021-209/+180
| | | | | * get rid of BlockGroup * unify BlockBox construction for flex, block, table
* layout: clean up inline tree constructionbptato2024-06-013-292/+309
| | | | | | | Much cleaner than the previous solution. Should also be somewhat less wasteful, as we no longer constantly rebuild the same tree with new branches.
* layout: dimSum -> sumbptato2024-06-011-22/+21
|
* layout: refactor resolveSizesbptato2024-06-011-140/+126
| | | | get rid of percHeight, unify min/max sizing, etc.
* main: fix tmpdir/sockdir permsbptato2024-05-311-3/+4
|
* config: fix -C with files not in CWDbptato2024-05-312-6/+14
|
* layout: line box sizing fixesbptato2024-05-311-15/+11
| | | | | * do not use inline block computed values for wrapper fragment * fix minimum line box height calculation
* pager: rework D/discard bufferbptato2024-05-311-47/+126
| | | | | | | | | | | | | | | | | | | | | The previous solution had the issue that it switched between "delete buffer, then move back" and "delete buffer, then move forward" depending on whether the buffer was the root of the buffer tree, which made its behavior quite unpredictable. Now the pager (sort of) remembers the direction you are coming from, and D moves in that direction. So e.g.: * Enter, D just moves back to where you were coming from (as before) * Comma, D deletes the previous buffer, then returns to the current buffer If no buffer exists in the target direction, then we alert. Also, new commands are: `d,' `d.'. They do the same thing the non-d-prefixed variations do, but also delete the current buffer. Useful if you're no longer sure where you are coming from, but know where you want to go. (`d,' in particular is equivalent to w3m's `B'.)
* layout: fix a width sizing bugbptato2024-05-301-4/+1
| | | | | | | As expected, the mystery line was just hiding another bug. (In particular, indefinite containing size constraints were not denied in resolveContentWidth, so it only (accidentally) worked with stretched sizes.)
* layout: fix regressionbptato2024-05-301-0/+3
| | | | seems like this line is necessary after all
* layout: simplify percHeight handling, misc refactoringsbptato2024-05-301-67/+30
|
* layout: fix caption margin calculationbptato2024-05-301-19/+17
| | | | | | * merge caption sizing code path with layoutRootBlock * fix caption margins being disregarded * fix incorrect positioning of `caption-side: bottom'
* layout: improve baseline calculationbptato2024-05-301-56/+56
| | | | | * use current fragment's line height for percentage baselines * get rid of baseline calculating pass in verticalAlignLine
* Fix GCC 14 compilationbptato2024-05-302-17/+26
| | | | | | | | TODO: find the exact flags we need instead of -fpermissive. See also: https://todo.sr.ht/~bptato/chawan/12 https://forum.nim-lang.org/t/11587
* layout: fix clear on blocks establishing new BFCsbptato2024-05-301-1/+4
| | | | | | | | | | | As per standard: > Adjoining vertical margins collapse, except: > [...] > If the top and bottom margins of an element with clearance are > adjoining, its margins collapse with the adjoining margins of > following siblings but that resulting margin does not collapse with > the bottom margin of the parent block.
* layout: misc refactoringsbptato2024-05-293-193/+205
|
* layout: get rid of InlineBoxBuilderbptato2024-05-283-109/+103
| | | | just merge it with InlineFragment
* buffer: fix ampersand escaping in markURLbptato2024-05-281-0/+4
|
* layout: fix crash on inline tablesbptato2024-05-281-1/+1
|
* stylednode: remove `text' fieldbptato2024-05-284-16/+20
| | | | This avoids some unnecessary string copying.
* stylednode: move invalidation data to DOMbptato2024-05-273-25/+23
| | | | this way, we do not refer to nodes of previous cascade passes
* layout: remove BlockBoxBuidlerbptato2024-05-273-687/+599
| | | | | | | | | | Instead of allocating a separate object for each box, just re-use a single BlockBox on re-layouts. This means that now the (block-level) tree is built in its final form in the first pass. (Inline boxes remain the same as before for now.)
* layout: list item improvements, fix inner markersbptato2024-05-251-36/+41
| | | | | * fix list-style-position: inside * get rid of ListItemBoxBuilder
* layout: add wrapper box for table caption + misc stuffbptato2024-05-242-121/+176
| | | | | | | | | Captions are no longer positioned inside tables, yay. Also, misc: * rename some things for consistency * clamp out of bounds rgb() values * remove inherited property lookup table
* client: fix double click on double width charsbptato2024-05-231-7/+7
| | | | | This is not a perfect solution, but it's still better than not being able to double click on CJK links correctly.
* url: add URL.parsebptato2024-05-221-0/+3
| | | | | | | Pointless bloat that fixes no real problems, but it's standard now... (Are we supposed to add a helper function that returns null for *every* constructor that can throw now?)
* layout, layoutunit: remove some automatic convertersbptato2024-05-223-13/+11
| | | | | I wish we didn't need any, but fixing this for integers would be too involved and the float64 one was causing problems now.
* layout: simplifybptato2024-05-211-102/+76
| | | | removes elaborate table box type hierarchy that does nothing
* twtstr: fix overflow checkbptato2024-05-211-2/+2
|
* sandbox: add sigreturnbptato2024-05-211-0/+2
| | | | seems to get called for signal handlers
* forkserver: also skip SIGTERM socket unlinkbptato2024-05-201-5/+1
| | | | rationale: see previous commit