about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* sheet: fix a correctness issue, misc refactoringsbptato2023-12-092-51/+63
| | | | | | | * Fix a bug where rules would be sorted incorrectly if retrieved from the cache. * Use withValue where possible * camelCase some variables, de-extern some functions, etc.
* cascade: refactor & optimizebptato2023-12-091-153/+192
| | | | | | * Break up applyRules into smaller functions * Do not call calcRules for every child pseudo element separately; just use parent's DeclarationListMap
* Update chamebptato2023-12-031-1/+1
|
* event: remove ctx from CustomEventbptato2023-12-033-36/+47
| | | | | Instead, make finalizers optionally pass their runtime for resource deallocation.
* buffer: do not needlessly copy in onloadbptato2023-12-031-9/+5
|
* pager, container: add text selection/copyingbptato2023-12-039-71/+258
| | | | | | | | | | * Add select & copy selection functionality to container * Fix bug in generateSwapOutput where output could be misplaced because of zero-width cells * Add fromJSPromise, call runJSJobs in every iteration of the headed event loop * "await" pager actions that output a promise * Change default view source keybinding to `\'
* Get rid of clang 16 workaroundbptato2023-12-024-12/+29
| | | | | * bindings/quickjs: importc and use correct pointer types * add constcharp module for when it is unavoidable
* js: get rid of emitbptato2023-12-021-22/+15
| | | | now I know how to :P
* dom: fix relList setter regression, remove rel()bptato2023-12-022-6/+15
|
* js: get rid of getJSValuebptato2023-12-022-11/+11
| | | | just use an UncheckedArray in the binding
* pager: small optimization in drawBufferbptato2023-12-011-2/+2
|
* dom: redefine Node.contains to match standardbptato2023-12-012-5/+7
| | | | (and expose it as a JS function)
* dom: functionize parentElement, improve Node.documentbptato2023-12-011-7/+7
| | | | | | * parentElement is now just a function. * Remove TODO from node.document; it is useful and not going anywhere. * Check for Nim type in Node.document, not nodeType
* dom: fix `children' being available for all Nodesbptato2023-12-011-6/+17
| | | | It is only defined for Document, Element, DocumentFragment.
* html: add HTMLElement.dataset (+ some twtstr cleanup)bptato2023-12-013-32/+96
|
* js: simplify toJSP0bptato2023-11-303-33/+17
| | | | | | | * Expose js_create_from_ctor from QuickJS and directly use that (instead of badly recreating it) * Do not call defineUnforgeable twice (it is inevitably called in toJSP0, so jsctor does not need it)
* js: allow subclassing platform objects in JSbptato2023-11-303-5/+50
|
* intl: stub out Intl.PluralRulesbptato2023-11-302-0/+26
|
* twtstr: simplify expandPathbptato2023-11-291-19/+12
|
* env: add window.top, window.parentbptato2023-11-291-3/+12
| | | | | Also, func-ize some similar identity functions, and add TODOs about [Replaceable].
* buffer: do not set readyState if document is nilbptato2023-11-291-1/+2
| | | | | As the comment says, buffer.document only exists if buffer.ishtml is true.
* dom: add document.readyStatebptato2023-11-272-2/+10
|
* buffer: add DOMContentLoaded, misc event improvementsbptato2023-11-272-49/+75
| | | | | | | * Add DOMContentLoaded * Re-use the same event object for all elements * Reshape if an event was fired * Reshape on setTimeout/setInterval fired
* layout: rewrite inline box handlingbptato2023-11-273-554/+654
| | | | | | | | | | | 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
* js: remove nonsensical comment linebptato2023-11-261-1/+0
|
* config: add bare aliases for "8bit", "24bit"bptato2023-11-261-2/+2
| | | | | | | | | | | Without this, setting color-mode using -o required quoting the values, and then shell-quoting the quotes themselves (cha -o 'display-color-mode="24bit"'). Instead of more special casing in the TOML parser, we just add aliases for these enum values that can be parsed using TOML bare string rules. So now this works: cha -o display.color-mode=true-color
* color: fix rgbToEightBit parenthesesbptato2023-11-261-1/+1
| | | | | This was causing incorrect approximation to grayscale values for colors with a red component in 8 .. 248.
* dom: expose HTMLInputElement.checkedbptato2023-11-241-1/+1
|
* layout: clamp size constraints to min/max sizes for floatsbptato2023-11-231-7/+12
|
* layout: add clear, etc.bptato2023-11-232-39/+116
| | | | | | * Add clear CSS property * Fix some margin resolution bugs * Apply min-height, max-height to inner inline outer block boxes
* css/values: use Opt instead of Result[string]bptato2023-11-211-55/+54
| | | | the error values were 100% unused
* css/values: simplify getComputedValuebptato2023-11-211-11/+10
|
* Move clang workaround to config.nimsbptato2023-11-211-4/+0
|
* layout: simplify max width/height calculationbptato2023-11-211-41/+43
| | | | No need for the options.
* layout: fix some sizing bugsbptato2023-11-211-103/+124
| | | | | | | | * 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
* pager: fix regressionbptato2023-11-213-20/+20
| | | | | pager.tty refers to infile, not outfile. rename to avoid further confusion
* bindings: find termcap on FreeBSDbptato2023-11-212-10/+21
| | | | | pkg-config does not find termcap (or really, ncurses) here, so we have to find it ourselves.
* pager: remove pager.tty memberbptato2023-11-212-7/+8
| | | | now it's a function
* buffer: call onload function on dispatchLoadEventbptato2023-11-211-3/+13
|
* env: stub out window.getComputedStyle()bptato2023-11-212-1/+6
| | | | not a real implementation, just to reduce exceptions
* fromjs: fix fromJSOption with nilbptato2023-11-211-1/+1
| | | | Use option() instead of some()
* renderdocument: avoid setText with zero-width stringbptato2023-11-211-9/+10
| | | | This can happen e.g. if the word is fully outside the canvas.
* css: add box-sizingbptato2023-11-212-16/+60
|
* dom: add baseURI, insertAdjacentHTMLbptato2023-11-201-0/+35
|
* renderdocument: fix regression in d20fc30bptato2023-11-201-12/+0
| | | | | The reasoning for using early returns was wrong, and they should be unnecessary anyway.
* twtstr: remove tolower, isWhitespacebptato2023-11-208-34/+23
| | | | | | | | * tolower: strutils toLowerAscii is good enough for the cases where we need it. Also, it's easy to confuse with unicode toLower and vice versa. * isWhitespace: in AsciiWhitespace is more idiomatic. Also has a naming collision with unicode toLower.
* renderdocument, cell: fix FormatCell bugsbptato2023-11-202-20/+43
| | | | | | | * No more zero width FormatCells messing up buffer display (yay!) * Assert on setText width a zero-length string * Remove unnecessary FormatCell added to every line on paintBackground start
* buffer: optimize findPrevLinkbptato2023-11-201-0/+8
| | | | | It's better to not do it perfectly in 100% of all cases than to loop through the entire document in all cases.
* Update chakasubptato2023-11-171-1/+1
|
* urimethodmap: do not escape substituted URIbptato2023-11-171-1/+1
| | | | This is consistent with what w3m does and is way more convenient.