Age | Commit message (Collapse) | Author |
|
Changing the fonts, zoom level, or window width will cause cached documents to be laid out again if they are restored from memory.
|
|
|
|
|
|
|
|
|
|
|
|
As soon as the first part of a response is available, update the page theme and banner.
|
|
The warning about terminal emulation can be dismissed on site-specific basis.
Banner items show a hover frame (like buttons) to indicate they can be clicked.
|
|
Warn the user about missing glyphs and potentially unsupported ANSI escapes.
TODO: Site-specific setting for dismissed warning; fonts preference about missing glyph warnings.
|
|
|
|
|
|
Banner will take over everything related to the page top banner.
DocumentWidget's content positioning is a bit messy, and now that the banner is no longer part of the GmDocument, it needed a bit of revising. It would still benefit from proper functions for mapping coordinates to/from the GmDocument coordinate space.
|
|
|
|
|
|
Include a padding under the buttons to account for the toolbar.
|
|
No need to use Garbage here to collect per-frame strings and arrays.
|
|
The hover widget needs updating if the currently visible tab changes. Normally the hover widget is only updated when the mouse has moved.
|
|
IssueID #354
|
|
|
|
The invalid runs were sometimes discarded before they had a chance to be drawn.
|
|
|
|
FG color and font style escapes can be enabled separately. FG color remains enabled by default like before.
|
|
Don't try to show a document while a long download is progressing, especially if we don't have any way to present the document format.
|
|
|
|
Saving this as the last point of progress. This direction is too complicated: Media needs to be a lot more sophisticated to allow dynamic and interactive media at the level of FontPacks. (A bit like Player handles audio playback.)
This will be reverted. FontPack management will happen using an another method.
|
|
When the last safe break position was not in the current attributed run, the calculated wrap advance came out incorrect. This was possible when the first glyph in an attributed run didn't fit.
|
|
Cleaned up serialization of the bool preferences a little.
|
|
It can be argued that using ANSI escapes to style text goes against the intended use of Gemtext. Therefore, all ANSI escapes are now disabled by default in Gemtext.
|
|
|
|
These changes concern the situation when the attributes of text (i.e., font, color) are changed via escape sequences.
The concept of "base attributes" was added so that the low-level text renderer knows which font/color to set when a "reset" escape sequence is encountered. This depends on what kind of text is being renderer, e.g., preformatted or regular paragraphs.
The base attributes were added as variables in Text because it was getting unwieldy to pass all the information via the draw/measure/WrapText functions.
GmDocument now has a GmTheme struct that collects the font and color information into a single place.
|
|
Convert Markdown to Gemtext and use ANSI escape sequences to switch fonts (bold, italic, monospace). The conversion is still a bit buggy...
|
|
# Conflicts:
# CMakeLists.txt
# res/lang/es.bin
# res/lang/fr.bin
# res/lang/gl.bin
# res/lang/ie.bin
# res/lang/ru.bin
# res/lang/sk.bin
# res/lang/sr.bin
# res/lang/tok.bin
# src/ui/documentwidget.c
|
|
The HarfBuzz and wrapped text changes introduced subtle differences in how text selection works. Fixed a bunch of issues regarding how the individual character selection mode works in edge cases.
IssueID #357
|
|
Media still needs more work to get rid of redundancies and make lookups faster.
FontPacks are manipulated as Media items (not unlike images) so they can be previewed on page, and installed via a click.
FontPack management is not trivial as it includes such details as versioning and whether individual packs are enabled or disabled.
|
|
Added a second version of Iosevka with more line spacing, to be used as the default monospace document font.
|
|
The idea is that the amount of content should be the same per line regardless of the font.
|
|
The built-in fonts are loaded via FontPack, and the font table is now constructed dynamically based on available fonts.
A full set of variants (style, size) are prepared for each font, but some of the data gets allocated lazily when needed.
GmRun needed a larger allocation for fonts, so now all the fields are combined into a single bit field.
TODO: Glyph scaling, vertical offsets, and symbol lookup are still not fully working.
|
|
|
|
|
|
|
|
|
|
|
|
Toe dipping into multiple window support by allowing popup menu widgets to be displayed in independent windows.
This is not a 100% replacement for native menus, but it gets pretty close.
|
|
MainWindow represents (one of) the main windows of the app, while the basic Window will be a used for popups.
Only MainWindow supports split view modes.
|
|
Touch-based interaction requires a different kind of selection and copy/paste behavior. This isn't done yet; especially multi-line text still needs work.
|
|
|
|
The new panels maker offers a declarative solution for creating consistent UIs.
|
|
Removed the two-stage acceleration of mouse wheel scrolling in favor of
slightly faster base scrolling speed overall. This makes the behavior
more consistent and predictable.
|
|
Contents of the Preferences split panel view are created based on arrays of MenuItems. This removes the confusing indirection of trying to modify the desktop widget tree to fit mobile.
|
|
The SDL text input rectangle function applies some sort of offset that is inappropriate on iOS.
|