Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Consistent code style.
|
|
While we do want to have special handling of punctuation to help wrap
pathologically-long-hyphenated-words-that-go-on-for-kilometers, we don't
want to wrap emoticons, so let's adjust the logic to account for this.
While we're at it, clean up and add a comment explaining the logic for
the benefit of future readers.
Fixes rendering of a recent post on CAPCOM at certain window sizes
=> gemini://rosenzweig.io/lagrange/Before.png Before the change
=> gemini://rosenzweig.io/lagrange/After.png After the change
Notice the wrapping of the ":D" in the second paragraph.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
|
|
|
|
|
|
|
|
|
This overrides Kosugi Maru as it looks a bit nicer, in case there are glyphs available in both.
|
|
Experimenting with terminal friendly space normalization where sometimes multiple spaces are used to align content horizontally (with a fixed-width font). When encountering 8 or more consecutive spaces, they are all replaced with a single tab character.
Gemtext allows clients to normalize whitespace as they see fit.
|
|
|
|
Body and heading fonts can be selected separately.
|
|
Added the EB Garamond and Literata fonts as serif font choices.
|
|
|