Age | Commit message (Collapse) | Author |
|
When wrapping, continue after whitespace.
|
|
|
|
Added a font for Arabic, making the glyphs available for rendering.
Of course, this doesn't solve Arabic text rendering yet. There is still the RTL direction to work out and possibly some missing glyph combining rules.
IssueID #195
|
|
Double click to select by word, triple click by paragraph.
IssueID #134
|
|
Set the correct break position in noWrap mode.
|
|
Added the Noto Sans Simplified Chinese font. This adds another ~10 MB to resources.lgr, increasing the urgency of distributing fonts via separate downloads.
The font table was getting difficult to manage, so now the sizes are broken out into a separate enum, and the table is reordered to match the FontSize order.
|
|
This was complicated by the wrap position being placed one character later than intended.
IssueID #201
|
|
IssueID #201
|
|
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
|
|
|