about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* render, pager: fix canvas background painting orderbptato2025-02-199-19/+51
| | | | | | | | | | We were painting the background box in render for dump mode, but this conflicted with the standard requirement that the canvas be painted before other elements. So now we handle this directly in the pager. Conveniently enough, this also fixes the issue of canvas color adding pointless spacing to pages (which often made the selection feature less useful.)
* tojs: clean up getTypePtrbptato2025-02-191-19/+31
|
* Fix testbptato2025-02-182-6/+1
| | | | ...
* layout: fix nested fixed boxesbptato2025-02-183-5/+24
|
* sheet: hash :root, :link pseudo classesbptato2025-02-183-41/+66
| | | | | | :root is used on the UA sheet, so it's quite important. :link, :visited can be treated as shortcuts (although :visited never matches right now).
* ua.css: set white-space pre for link markerbptato2025-02-181-1/+2
|
* Add mark-links featurebptato2025-02-1812-25/+107
| | | | ref. https://todo.sr.ht/~bptato/chawan/43
* layout: implement negative z-indexbptato2025-02-1810-131/+295
| | | | Ugly, but works. I think.
* box: use singly linked list instead of seq for childrenbptato2025-02-173-23/+40
| | | | | | | | | | Mainly because the seq was hindering further improvements. I don't expect performance or memory usage to change much; leaf nodes now store one pointer more, but parent nodes no longer pay for the overhead of a seq. (FWIW, other browsers seem to be using linked lists for this, too.)
* render: respect stacking context for inline boxesbptato2025-02-174-23/+47
| | | | | | | | | | | | Also, eliminate the offset attribute in StackItem by just taking render.offset from the nearest ancestor as the base. That leaves us with clipBox, which I'm not yet sure how to get rid of. Its current implementation is certainly wrong: `position: absolute' should really use its absolute container's clip box. It is however correct for `position: relative' in its current form. (One way would be to cache it inside CSSBox, like we do offset.)
* layout: position absolute boxes relative to their parentbptato2025-02-169-70/+97
| | | | | | | | | | | | Also fixes an invisible bug where inline-block child absolutes were queued multiple times. This adds a pointer to the parent box for CSSBox objects, which isn't great, but the alternatives (maintaining an explicit stack or adding another tree traversal) were overly complex and/or too inefficient. On the flip side, now it should be possible to do both stacking contexts (with negative z-index) and overflow tracking in layout. (I think.)
* client: remove client getterbptato2025-02-152-5/+2
| | | | Undocumented, plus and globalThis/window are enough.
* javascript: fix multiple registerType statements on same typebptato2025-02-151-2/+2
| | | | Fixes setTimeout etc. not working on client.
* layout: skip Cf charactersbptato2025-02-152-1/+7
| | | | We cannot handle these yet.
* cssparser: optimize a bitbptato2025-02-152-19/+17
| | | | It would be nice to at least make it single-pass.
* catom: toStr -> $bptato2025-02-154-69/+36
|
* xhr, event, catom: fix some bugsbptato2025-02-1515-274/+333
| | | | Event handler functions can be set twice now.
* quickjs: fix some bindingsbptato2025-02-151-1/+11
|
* buffer: wait for scripts in headless modebptato2025-02-156-27/+72
| | | | | Dump mode remains the same, except now it can be controlled in config.toml as well.
* buffer: remove estream, fdbptato2025-02-142-7/+4
|
* dom: store pseudo-element computed values in a seqbptato2025-02-144-17/+20
| | | | | A map isn't so bad with three pointers, but it won't be viable once we start adding more pseudo-elements.
* csstree, cssvalues: add non-numeric counters, japanese-formalbptato2025-02-147-127/+161
| | | | plus refactor a bit
* csstree, cssvalues: implement counter()bptato2025-02-137-47/+211
|
* csstree, layout: more refactoringbptato2025-02-139-509/+431
| | | | | Base InlineBox is a fair bit smaller now, and (most) strings are cached using RefString.
* catom: make factory globalbptato2025-02-1313-341/+238
| | | | | This isn't great, but neither was passing around a pointer that pointed to a single object.
* dom: add DocumentType name, publicId, systemId gettersbptato2025-02-131-3/+3
|
* 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
|
an <narimiran@disroot.org> 2019-01-10 09:31:18 +0100 update changelog' href='/ahoang/Nim/commit/changelog.md?h=devel&id=f7d2f9c5f0844af8831d780ad2b289305c482ada'>f7d2f9c5f ^
3ba8f158f ^
f7d2f9c5f ^
c4e3c4ca2 ^
f7d2f9c5f ^
c4e3c4ca2 ^
ce5e8b93e ^

695206a00 ^

b2a5195e9 ^

7d7cd6907 ^
9cc4a5776 ^
142a2d355 ^
695206a00 ^
3647c03ca ^


afeca3d9f ^
e3e17009f ^
212457f5e ^
f8cef575b ^


06122ff71 ^
ca4b971bc ^


cc5b8c6ad ^



80843373b ^
8d850f7a6 ^



c0fc2f572 ^



ce9815bcf ^


f7d2f9c5f ^
737fff590 ^
0e57b4cf6 ^
f7d2f9c5f ^
8180d443b ^

c0fc2f572 ^
e3e17009f ^

f7d2f9c5f ^
413580bc0 ^

e4850b7f1 ^
9becb41e0 ^
044cef152 ^
9becb41e0 ^
044cef152 ^
988412905 ^
212fdc594 ^
f7d2f9c5f ^
e3e17009f ^

b5448bf25 ^




737fff590 ^
044cef152 ^
05b8085a8 ^

044cef152 ^
05b8085a8 ^

737fff590 ^


b3a80dd2e ^
e3e17009f ^
737fff590 ^
db95fad6f ^


821920aa3 ^

e3e17009f ^
f7d2f9c5f ^
e3e17009f ^
737fff590 ^
d80e58543 ^
ca4b971bc ^





f7d2f9c5f ^
737fff590 ^
e3037a2f3 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250