about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* cascade: support nested variablesbptato2025-01-202-78/+77
| | | | ...and refactor applyValue in the process.
* cascade: collapse StyledNode tree into DOMbptato2025-01-209-534/+317
| | | | | We now compute styles on-demand, which is both more efficient and simpler than the convoluted tree diffing logic we previously used.
* pager: do not alert on failed history write if config dir doesn't existbptato2025-01-201-1/+4
| | | | ref. https://todo.sr.ht/~bptato/chawan/41
* container, config.toml: add | commandbptato2025-01-191-0/+6
| | | | | | Particularly useful when debugging minified JS. vi always wraps; the centering behavior is from vim.
* dom: simplify a bitbptato2025-01-191-1/+1
|
* config: expandTilde -> expandPathbptato2025-01-191-2/+2
|
* dom: CSSStyleDeclaration improvementsbptato2025-01-195-21/+35
| | | | Now getComputedStyle works with pseudo-elements too.
* cascade: simplify RuleListMapbptato2025-01-181-42/+31
| | | | it can be a value type again
* dom, stylednode: move more fields, handle pseudo-element getComputedStylebptato2025-01-186-105/+132
|
* Remove submodulesbptato2025-01-182-34/+0
| | | | | I got tired of submodules. This commit doesn't build; subtrees incoming...
* pager: keep reading if term has chars bufferedbptato2025-01-182-0/+7
|
* dom: optimizebptato2025-01-182-10/+16
| | | | We'll see if the borrow checker actually works :)
* dom: compare rel case insensitivelybptato2025-01-172-7/+12
|
* dom: fix input checkedness invalidationbptato2025-01-171-0/+4
|
* sheet: dedupe tag :is hashesbptato2025-01-171-1/+2
|
* render: fix formatting being lost outside boxes with bgcolorbptato2025-01-171-21/+20
| | | | | | 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: simplify some pointless delete/insert callsbptato2025-01-171-8/+4
|
* pager: merge ask with askChar, remove urandombptato2025-01-172-45/+36
|
* term: rework input bufferbptato2025-01-174-15/+25
| | | | heh
* stylednode: remove obsolete templatebptato2025-01-171-4/+1
|
* container: fix crash on clicking label for empty selectbptato2025-01-161-1/+1
|
* dom: add Option constructorbptato2025-01-161-0/+13
|
* dom: set target on dispatchbptato2025-01-161-0/+1
|
* render: overprint existing text when painting backgroundsbptato2025-01-161-9/+29
| | | | | | | | 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.
* term: fix non-UTF-8 visual outputbptato2025-01-161-8/+7
|
* css: reduce StyledNode usebptato2025-01-165-69/+62
| | | | | Eventually the tree should be collapsed into the DOM, and StyledNode should be created on the stack.
* cssvalues: serialize quotes, add font-size, opacitybptato2025-01-163-34/+49
| | | | | | | | | | | | font-size isn't very useful, but some scripts assume it exists. opacity: 0 for now is special cased: it inhibits rendering of further boxes. This isn't quite right, as it should just behave as a pseudo visibility: hidden... nonetheless it's quite effective at hiding garbage. (Also, remove incorrect comment - it can be nil if the branch has no variables.)
* env, dom: add crypto.getRandomValues, HTMLInputElement.filesbptato2025-01-166-14/+35
|
* cascade: basic CSS variable supportbptato2025-01-163-163/+286
| | | | | | | | | | | 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().
* sheet, selectorparser: fix attr hashing, hash multiple tags in :isbptato2025-01-162-17/+18
|
* dom: optimize isFirstVisualNodebptato2025-01-151-8/+7
|
* cssparser: enumize CSSFunction namebptato2025-01-153-15/+30
|
* pager: improve content type handlingbptato2025-01-155-55/+50
| | | | also remove some unused fields of Container
* layout: truncate inline-block margins as wellbptato2025-01-151-0/+4
|
* widthconv: fix hiragana -> half-width kana conversionbptato2025-01-151-0/+1
| | | | Unicode has no half-width hiragana :/
* buffer: add back node nil checksbptato2025-01-151-2/+2
| | | | | Actually, I'm not sure if this can be nil, especially in anonymous table boxes...
* cascade, stylednode: remove parent field from StyledNodebptato2025-01-153-143/+140
| | | | | | | | Now StyledNode has an "element" reference, which refers to the element it was derived from. This reduces the object's size, removes the need for casting around the "node" field, and also gets rid of a pointless cycle.
* cascade: fix hasValues filterbptato2025-01-141-6/+5
|
* css: refactor selector parsing & cascading, some work on variablesbptato2025-01-146-202/+258
| | | | | | | | | Untangled some nested arrays to reduce the number of intermediary seqs in cascade, and collapsed the two rule def sorts into just one (per pseudo element). This should make cascading somewhat faster. Also, we now parse variables, but they aren't resolved yet. Probably a seq won't cut it for var lookup...
* More strict defsbptato2025-01-141-27/+33
|
* opt: remove value.ok, value.err overloads, use lentbptato2025-01-142-18/+6
| | | | | | largely unused lent idea from nim-results
* Update monouchabptato2025-01-131-1/+1
|
* dom: mark insertBefore "before" as Optionbptato2025-01-132-12/+14
|
* dom: fix leak, HTMLOptionsCollection length getterbptato2025-01-131-0/+4
| | | | Fixes acid3 test 57
* dom: HTMLTemplateElement content getterbptato2025-01-131-1/+1
|
* container: use linked list instead of dequebptato2025-01-132-6/+19
|
* cookie: improve Expires parsingbptato2025-01-131-52/+32
|
* config: switch to camel casebptato2025-01-1310-172/+158
| | | | | | We already need a camel -> kebab converter anyway. Unfortunately this also changes JS binding names, so it's a breaking change. Oh well.
* loader: remove obsolete todobptato2025-01-121-1/+0
|
* cssvalues: set text-decoration to bit, vertical-align to wordbptato2025-01-121-27/+25
| | | | they fit into 8 and 64 bits respectively