Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
IssueID #358
|
|
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.
|
|
Remember which UI color themes are selected for system light and dark modes separately. Previously it would always switch to a hardcoded color theme when toggling the "Use system theme" option.
|
|
Added a second version of Iosevka with more line spacing, to be used as the default monospace document 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.
|
|
|
|
Show some status info about the progress of feed refresh. The search query and feeds indicators now use the small UI font size.
|
|
New bookmarks and folders shouldn't appear outside the visible part of the list.
|
|
Window placement was not restored correctly when the window was maximized. Maximizing a window (on Windows) causes a spurious move event to be received from SDL, and that would mess up the remembered position. Now window placemenet is saved after a run through the event loop, so the rest of the window messages have been handled.
|
|
This is quite a hack, but Win32 apps don't seem to have documented
access to dark mode.
|
|
|
|
The renderer is created separately so it's possible to set the window
position at creation time.
Popup window use basic software rendering for (hopefully) better
performance.
|
|
|
|
|
|
Incremented the version of state.lgr so it can include bookmark folder open/closed state for each of the two/four sidebars.
|
|
|
|
The user can now create bookmark folders, and drag bookmarks into them. Folders can also be nested.
The bookmark sorting menu item sorts inside the chosen folder/root.
Remote bookmark sources appear also as folders, although they cannot be sorted/edited.
IssueID #339
|
|
|
|
|
|
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.
|
|
The hover widget may get deleted during event processing, so Window keeps track of it for refreshing.
TODO: Random crash when a destroyed menu is still in the onTop array (?).
|
|
Fixed issues: scrollbar goes under toolbar, value input dialog grows too tall, Undo/Select All in the clip menu.
|
|
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.
|
|
|
|
Option to colorize images to grayscale, text color, or preformatted color.
|
|
|
|
SDL2 works fine without a window system, but it seems the DPI-querying
API will crash so let's not call that.
Should still add command line options to control the screen resolution,
i.e., overriding the window size.
|
|
These options are mostly useful on mobile platforms that are not iOS or Android, and for testing purposes.
|
|
The option defaults to OFF because generally SDL should be handling this and the resize watcher is a bit of hack.
|
|
|
|
IssueID #319
|
|
When using the upload shortcut, enable configuring a specific port for Titan via site-specific parameters.
|
|
|
|
`UploadWidget` allows entering long-form text or dropping a file for uploading.
InputWidget isn't yet well suited for really long documents... Some optimizations will be needed.
|
|
IssueID #297
|
|
IssueID #229
|
|
Internally, all URIs should be converted to a canonical form so that they can be compared against each other.
The canonical form is an IRI with spaces and reserved characters percent-encoded.
|