Age | Commit message (Collapse) | Author |
|
Mobile "Find on page" is now in the nav menu. Added icons to sidebar toggle items.
|
|
Fill glyph backgrounds individually based on current color.
|
|
|
|
Don't force the same advance on all glyphs, since some don't advance the position.
IssueID #204
|
|
Previously glyph caching was done during text rendering, but that would mean lots of swapping between rendering stuff to the cache and then immediately afterward rendering to the display. There would be a swap per each new glyph.
Now the entire document's glyphs are precached at once when a request is finished. Glyphs are also cached in larger batches when new text needs to be drawn.
|
|
|
|
The extra bold that is used for titles is too bold for links.
|
|
Links are important enough to stand out clearly. A bold font can be tinted with the primary theme color without losing readability.
|
|
Do platform-specific processing of scroll events up front so widgets can support both types of scrolls everywhere.
IssueID #166
|
|
Also various widget fixes/improvements.
|
|
The software keyboard obstructs part of the UI, so need to offset the view if the focused input widget would not be visible.
|
|
Allow the UI and monospace fonts to be used as page content fonts.
|
|
|
|
|
|
|
|
|
|
|
|
Handle finger down, motion, and up events to implement basic taps, long presses, and inertia scrolling.
Much finetuning still to be done, and certain widgets like input fields and scrollbars need a direct drag mode (they were working fine via the "mouse" events already).
|
|
Use a double \r for color IDs 95 and beyond.
|
|
|
|
Saving the window rectangle and snap mode. Frame title alignment.
|
|
Glyphs are now rasterized only when they are needed for drawing. Otherwise, only the metrics and the cache position are set.
This is more robust as we can retry rasterizing glyphs that previously failed, and faster because measuring (e.g., document layout) doesn't rasterize anything.
|
|
Sometimes a glyph was rasterized but it was not possible to create a texture out of it. In this case, the surface was never released.
|
|
We can use a smaller glyph cache if we clear it when it fills up. Even a large cache would eventually fill up, so clearing is a good strategy anyway. Clears occur still rather infrequently.
|
|
The bold UI label font is used for highlighted sidebar items and default buttons.
|
|
|
|
|
|
|
|
|
|
Text drawing can now be made aware of the available horizontal space.
|
|
|
|
|
|
There may be partial overlaps with full-height glyphs because the fonts are scaled unhinted.
|
|
|
|
Iosevka replaces Fira Mono as the monospace font.
Emojis are now allowed to be wider than normal monospace glyphs. However, if whitespace permits, the original monospacing is restored.
IssueID #73
|
|
|
|
|
|
The fonts bundled with Lagrange currently do not have all the latest Unicode symbols, so we'll ignore the joiners and modifiers for gender and skin color.
A better option would be to fall back to system-provided text rendering, if that is available.
IssueID #81
|
|
This is a better solution than a magic 0.25 pixel offset.
To eliminate partially occupied glyph edge pixels, scale the glyphs slightly so they align with full pixels. Scaling is only done horizontally so it doesn't affect line height.
IssueID #86
|
|
IssueID #86
|
|
IssueID #82
|
|
|
|
Reserve one more glyph cache row size so the tallest glyphs fit.
|
|
With regard to gemini://gemini.conman.org/test/torture/0050.
|
|
Not entirely glitch-free but should be good enough for now.
IssueID #44
|
|
|
|
Tinos is a much more readable serif font, especially when it comes to the italic variant.
|
|
Alas, a couple of megabytes larger than Kosugi Maru, but has better glyph coverage.
|
|
IssueID #41
|
|
Monospace body font can be set separately for Gemini and Gopher.
|