about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* pager: copy cursor position on meta refreshbptato2025-02-132-7/+8
|
* layout: separate out tree construction logicbptato2025-02-127-619/+568
| | | | | | | | | | | | | | | For now, the skeleton remains in layout. Eventually it should be lazily constructed during the actual layout pass (thereby making layout "single-pass" (sometimes :p)) The end goal is to do it all in styledNode.children, so that caching can be as simple as "next box = find next matching cached box ?? make new". This does mean that the internal structure of cached boxes will always have to be reconstructed, but I don't see a better way. (I suppose it still remains possible to optimize out the unnecessary layout pass when only a repaint is needed (e.g. color change) by modifying computed values in-place.)
* cssvalues: fix list-style-type initial valuebptato2025-02-122-2/+2
| | | | | The marker placement in that test is wrong, but that isn't really a result of this change.
* render: fix a visibility bugbptato2025-02-113-8/+15
|
* event: add MouseEvent constructorbptato2025-02-111-1/+49
|
* Update docsbptato2025-02-113-78/+65
|
* buffer: fix nil check in maybeReshapebptato2025-02-101-1/+1
|
* dynstream: allow reading less fds than specifiedbptato2025-02-101-7/+19
|
* layout: respect intrinsic minimum width of table cellsbptato2025-02-093-1/+16
|
* dynstream: use seq instead of manual allocationbptato2025-02-091-12/+4
|
* layout: refactor tree building phasebptato2025-02-0910-269/+198
| | | | | | | * remove inlineGroup - it was completely pointless now, and was the cause of some whitespace collapsing bugs * fix a float bug made visible by the above change * fix non-standard list item counter behavior
* pager: remove (BUFFER) from prompt, hide alert promptbptato2025-02-091-6/+5
| | | | just a waste of space
* javascript: small cleanupbptato2025-02-081-115/+95
|
* pager: existsDir -> dirExistsbptato2025-02-081-1/+1
|
* layout: fix nested float positioningbptato2025-02-084-5/+13
| | | | | | | | | | Setting the width to max-content was supposed to be an optimization, but it seems max-content has some issues when interacting with floats. Arguably this is just hiding the bug, but my attempt to fix max-content was not successful... (That is to say, I suspect floats still behave strangely in tables.)
* box: abstract over tree traversalbptato2025-02-082-16/+20
|
* buffer: treat elements with click listener as clickablebptato2025-02-082-2/+11
|
* javascript: remove fromJSThis error messagesbptato2025-02-081-25/+23
| | | | fromJS is enough
* tojs: more type erasurebptato2025-02-081-33/+20
| | | | | | Starting to think that the eventual ORC Monoucha port should just restrict registerType to RootObj-derived objects. (Then we could always use the type field to dispatch on incref/decref.)
* dom: various select fixes/improvementsbptato2025-02-084-21/+41
| | | | | | | | * do not trigger change event if selection did not change * do not destroy old selection on option insertion steps * position select popup correctly * reflectors for disabled attribute * immediately redraw container when select disappears
* dom: add fireEvent for Event objectsbptato2025-02-084-6/+9
|
* layout: fix some pre whitespace bugsbptato2025-02-083-62/+71
|
* layout: fix firstBaseline bugbptato2025-02-083-1/+12
|
* buffer, event: add input events, set isTrustedbptato2025-02-074-1/+55
|
* layout: unify BlockBox and InlineBox, refactor buildingbptato2025-02-0715-448/+564
| | | | | | | | | | | | | | * normalize flow baseline computation * fix various margin collapsing bugs * eliminate inlineStack * eliminate push* * derive BlockBox and InlineBox from CSSBox This removes a pointer from BlockBox, and adds a pointer to both BlockBox and InlineBox (type field). A net loss, but it makes the code more manageable. Plus, inline groups now need one less allocation, so overall it's not that bad.
* catom: convert JS_ATOM_NULL to CAtomNullbptato2025-02-061-3/+6
| | | | unsure about the utility of this, but why not
* jsintl: support unitsbptato2025-02-061-20/+194
|
* pager: catch SIGINT for interrupt handlerbptato2025-02-053-45/+27
| | | | | | | | Significantly more efficient in long running commands (as the context switch is gone). For many commands in quick succession... it replaces the fcntl with a tcsetattr, so I guess it's the same?
* dom: various collection fixesbptato2025-02-051-8/+28
| | | | | | | | | | * fix iterator assertion failing if finalizer del's after incl * fix strange mismatch in id * fix missing HTMLOptionsCollection finalizer * optimize refreshCollection * fix root liveCollections not being updated by the finalizer Now it shouldn't crash pages anymore.
* javascript, jsopaque: call finalizers without corresponding JSValuebptato2025-02-054-25/+40
| | | | | | | | | | | | Previously, nim_finalize_for_js only called a finalizer if the opaque Nim object already had a corresponding JSValue. This was probably an oversight (at least I had no idea this worked this way), so now we always call the finalizer. The upshot is that this means that finalizers can now receive a nil runtime in this case, so finalizers not prepared for this might break. The solution is to either explicitly nil-check the runtime, or to ensure that such objects always get converted to a JSValue first.
* formdata: fix FormData constructor, append filename handlingbptato2025-02-053-21/+29
| | | | + some strict defs
* buffer: remove rfd, fdbptato2025-02-052-58/+55
| | | | | | maybe InputData should just be a Response (really it should be a ReadableStream - if we had that...)
* file: fix directory listingbptato2025-02-051-4/+3
|
* cssparser: fix an infinite loopbptato2025-02-052-23/+10
| | | | | | | startsWithNumber was a poorly copied version of the standard algorithm, which, as it turns out, is largely redundant. So I removed most of it and inlined the rest.
* layout: round out small list-item margins and paddingbptato2025-02-042-11/+20
| | | | | They can be especially distracting when the rounding error fluctuates between items.
* cssparser: fix parsing of consequitive commentsbptato2025-02-043-1/+7
|
* cascade, ua.css: use ansi red, replace option with anonymous StyledNodesbptato2025-02-0410-79/+116
| | | | Now select[multiple] options have the same coloring as w3m.
* layout: merge addOuterBlock with layoutBlock, refactorbptato2025-02-045-491/+577
| | | | | | | | | | | Having to initLine after every block hurts... I've added a mechanism to at least eliminate cleared floats, but I wish we just didn't init the line :/ (I tried making it lazy, but I couldn't get it to work elegantly.) I've also added some comments about flow, and moved around code so that related layouts are mostly in the same place.
* promise: fix leakbptato2025-02-041-0/+2
|
* Add missing unlicense filebptato2025-02-041-0/+24
|
* dom: fix @import processing orderbptato2025-02-031-14/+31
| | | | Not only was it wrong until now, it was also non-deterministic...
* dom, event: stub UIEvent, MouseEvent; accept customevent in createEventbptato2025-02-033-5/+23
|
* dom: expose activeElementbptato2025-02-031-1/+1
|
* buffer: fire change event on selection etcbptato2025-02-033-0/+20
|
* buffer: fix evalJSURL angle bracket placementbptato2025-02-031-2/+2
|
* dom: reflect iframe src, namebptato2025-02-031-2/+2
|
* lunit: fix negative roundingbptato2025-02-031-0/+2
|
* layout: eliminate InlineAtombptato2025-02-033-225/+230
| | | | | | | | | * For boxes, we now use the box in InlineBox. * For images, wrap bmp in an InlineImage type that stores offset + size. * For text, wrap strings into TextRun objects (an offset + a string). (Ideally, TextRuns shouldn't copy at all, but that's a problem for another time.)
* layout: inline background fixes & simplificationbptato2025-02-038-132/+119
| | | | | Eliminates two superfluous line box alignment passes, and fixes some vertical-align bugs.
* layout: fix list item layoutbptato2025-02-031-14/+6
| | | | The content should clear.