about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* select: fix display with multi-width charsbptato2024-11-241-6/+11
| | | | progress. now they only mess up coloring a bit.
* layout: fix intrinsic min width for words with wrapping opportunitiesbptato2024-11-241-11/+18
| | | | | | | This broke CJK combined with table layouts. (Inline layout's state dependencies between procs are getting a bit scary...)
* pager: pad menu itemsbptato2024-11-241-10/+10
|
* buffer: slightly improve markURLbptato2024-11-241-49/+69
| | | | merge text nodes, eat nobr, wbr
* pager, select: implement more functionsbptato2024-11-242-5/+18
| | | | | not quite happy with this design but for now let's just try to make it work well
* pager, select: add right click menu, fix some bugsbptato2024-11-234-82/+219
| | | | | | | | | | | | | | | | | | It's *not* a context menu: items are fixed, and currently not even customizable. Former is a feature, latter is a bug. Also, select now has improved mouse support; its behavior is a combination of the w3m menu (for btn1) and GTK Firefox context menu (for btn3). Also, fix some bugs in select: * lines with double width chars are handled better (not perfectly, but at least the grid isn't completely mangled anymore) * non-multiple select now highlights the currently selected option * small selects at the bottom of the screen are handled correctly * selects at the right edge of the screen are handled correctly * select multiple no longer discards selected items on cursorLeft
* pager: fix loadURL crash on empty URLbptato2024-11-231-1/+3
| | | | ref. https://todo.sr.ht/~bptato/chawan/24
* container: add Lynx-style navigation commandscommodorian2024-11-232-1/+60
|
* dom: implement HTMLDocument, make Image C/Wbptato2024-11-221-1/+3
| | | | | | | | | | * add HTMLDocument as alias to Document * set Image as configurable/writable So looking closer, HTMLDocument *is* specified, just major browsers don't follow the spec. I doubt this incompatibility causes issues, anyway.
* dom: add document named property getter, update monouchabptato2024-11-222-9/+40
|
* dom: add document.compatModebptato2024-11-221-0/+5
|
* Update chamebptato2024-11-221-1/+1
|
* buffer: proper toggleImages implementationbptato2024-11-217-21/+50
| | | | | | | It necessarily removes the config.images check from codec access, which I'm not quite happy about, so I've added a check to the DOM instead. (TODO: maybe pager should just dynamically grant codec access as a capability instead? but maybe that's even more error prone...)
* select: various improvementsbptato2024-11-211-69/+79
| | | | | | * replace weird cursor position representation * add cursorTop, cursorMiddle, cursorBottom, scrollDown, scrollUp * expose fromy, cursory to JS
* chadombuilder: fix removeImpl definitionbptato2024-11-211-1/+2
| | | | | It is documented in chame that parentNode may be nil, and indeed, it is nil in some cases.
* match, stylednode: remove generics, refactorbptato2024-11-193-137/+91
| | | | | | Turns out the generics weren't really needed in the first place. Also, StyledNode is now 16 bytes smaller.
* dom: add Image constructorbptato2024-11-191-0/+10
|
* event: fix preventDefault with stopImmediatePropagationbptato2024-11-191-5/+4
| | | | canceled was not being set, because we jumped out of the loop too early.
* container: add numLines getterbptato2024-11-191-1/+1
|
* layout: fix intrinsic min width with whitespace: prebptato2024-11-191-0/+1
|
* layout: fix indefinitely sized flex items with boundsbptato2024-11-191-1/+8
| | | | maybe I'll get it right one of these days
* dom: add HTMLHyperlinkElementUtils settersbptato2024-11-192-30/+82
|
* Update monoucha, fix some JS testsbptato2024-11-186-46/+54
|
* ua.css, event: small clean upbptato2024-11-181-1/+0
|
* dynstream: check lseek return codebptato2024-11-171-0/+1
| | | | just in case
* layout: fix crash on overlapping rowspan/colspanbptato2024-11-171-2/+3
| | | | | The rowspan filler must get a smaller colspan if its first cells are occupied by another cell with a colspan > 1.
* buffer: fix hover text not showing up with pseudo elementsbptato2024-11-172-78/+66
| | | | | | | | | | | | | | | | | | This was a bit annoying because it triggered the popup warning on cursorNextLink -> click with form buttons (as the square brackets around [button] are implemented with ::before/::after.) Notably, this also removes the visibility check from isClickable. I suspect there was a good reason why I added it, but I can't remember why, and it's incompatible with what desktop browsers do on: <a href="https://asdf.com" style="visibility: hidden"> <div style="visibility: visible"> test </div> </div> So if it's ever added back, then this case should be respected too.
* buffer: clean up findPrevLink, findNextLinkbptato2024-11-171-82/+57
| | | | | findPrevLink is still an unreadable mess, but at least findNextLink looks alright now.
* select: add cursorPrevLink, cursorNextLinkbptato2024-11-171-0/+6
|
* container: do not share cached images on clonebptato2024-11-161-0/+1
| | | | this was causing images to disappear sometimes
* dom: add getElementsByName, fix adoptbptato2024-11-161-1/+10
|
* Update monouchabptato2024-11-161-1/+1
|
* url: improve special scheme detectionbptato2024-11-161-62/+69
| | | | | * get rid of hash table * only do a single port lookup every time the port changes
* dom: run insertion steps for descendants on insertionbptato2024-11-151-10/+21
| | | | | | | | | wait isn't this exponential -- apparently not, at least not with the DOM builder. (however it is if JS builds the DOM out of place. what can you do, at least it works now.)
* url: fix serializeFormURLEncoded, refactorbptato2024-11-152-31/+22
| | | | kill qmark hack, plus refactor the form data parser/serializer
* color: clean up dead codebptato2024-11-151-16/+4
|
* twtstr: beforeLast -> untilLastbptato2024-11-153-4/+4
| | | | for consistency
* formdata: eliminate a global varbptato2024-11-158-31/+36
|
* js: reorganize modules, update docsbptato2024-11-1521-57/+52
| | | | | | | most of it has already been moved to monoucha, and the rest fits better in other directories. also, move urimethodmap to config
* cssvalues: reduce CSSComputedValue sizebptato2024-11-145-91/+102
| | | | | | | far from perfect, but it's something. (ideally, we should store enums in a bitmap instead of allocating a GC'ed property for each of them.)
* layout: fix another flex sizing bugbptato2024-11-141-1/+8
|
* buffer: skip unnecessary reshape in some casesbptato2024-11-141-25/+26
|
* layout: remove inline paddingbptato2024-11-131-24/+5
| | | | like line height, this caused more trouble than it was worth
* chapath: fix a few more bugs, simplifybptato2024-11-132-65/+34
| | | | | | | | | * fix incorrect :- behavior * merge non-standard '${%VARIABLE}' syntax with regular syntax; now all internal variables are exported to the environment, so the behavior should be equivalent. * handle terminal symbol appropriately in all states * deny numeric curly substitutions
* config: resolve download-dir as path, update docsbptato2024-11-132-2/+4
| | | | | | | Turns out it's more useful to have env vars in the variable than to allow incomplete path names. Also, fix the disappearing backslash issue in docs.
* config.toml: respect TMPDIRbptato2024-11-121-6/+10
| | | | | also, fix a bug in the chapath parser so that param expansion actually works
* container: fix `U' cursor repositioning (really)bptato2024-11-122-25/+16
| | | | I swear this feature is cursed
* buffer: fix broken gotoAnchor behaviorbptato2024-11-125-90/+123
| | | | | | | | | | | | | | | | | 23beebe6 introduced a regression that broke gotoAnchor. This fixes that, plus a couple other long-standing gotoAnchor bugs: * If no anchor is found, do not dupe the buffer. Desktop browsers still add a history entry, while w3m prints an error. I've copied the latter because it makes more sense as a user, but this will have to be refined for the navigation API at some point. * If the anchor *is* found, then always jump to it, even if it's not visible. This was a limitation of relying on the line array, so now we rely on the box tree instead. (Sooner or later, the former must go anyway.) Also, fix `U' reload not restoring the position (hopefully this time for good).
* client: do not reopen istream if stdin is a ttybptato2024-11-121-6/+5
|
* url: reduce URL object size, simplifybptato2024-11-117-291/+208
| | | | | | | * query, fragment are now strings, not options * get rid of Host, Path types, now hostname/pathname are strings * fix ipv4 parsing error case * in file protocol, fix URL for dirlist without slash with a redirection