Age | Commit message (Collapse) | Author |
|
|
|
IssueID #354
|
|
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.
|
|
The 80% size is used in the toolbar.
|
|
Show some status info about the progress of feed refresh. The search query and feeds indicators now use the small UI font size.
|
|
|
|
|
|
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.
|
|
|
|
Some deleted widgets were kept around in the root's onTop list.
|
|
|
|
Avoid visibly duplicating the currently selected item, as it can be seen in the dropdown button and the menu.
|
|
Added the special prefix `///` to mark items disabled.
|
|
Popup context menus now use NSMenu. There are still has a few glitches with the navbar identity button, but most menus are working.
SDL required another little tweak to force it to update mouse button state after the synchronously handled context menu goes away. Otherwise SDL's internal mouse button state shows that the right mouse button is held down.
|
|
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.
|
|
Root's safe rect was not using the right origin coordinates.
IssueID #337
|
|
|
|
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 (?).
|
|
|
|
|
|
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.
|
|
|
|
Widgets can now be marked for buffering their contents, which is useful if their contents change seldom but they are drawn often.
For example, the navbar is always visible but doesn't change very often, and during animations menu contents are static but there is a moving animation so everything gets drawn 60 FPS.
Focus handling was also improved so the lookup results can be scrolled while entering text, and one can tap outside an input field to unfocus it.
|
|
|
|
The new panels maker offers a declarative solution for creating consistent UIs.
|
|
The SDL text input rectangle function applies some sort of offset that is inappropriate on iOS.
|
|
These options are mostly useful on mobile platforms that are not iOS or Android, and for testing purposes.
|
|
In the long-form text entry mode, don't use the user's configured Return key behavior, since that's meant for shorter input fields.
Input fields no longer lose focus when the window loses input focus, but the cursor will stop blinking. This makes it easier to resume typing after switching window focus, and also on macOS the symbol picker is easier to use.
|
|
For example, any URL field should disallow line breaks. The line break modifier preference should be disregarded in an input field where there are no line breaks.
|
|
`InputWidget` needs to be better at handling multiple lines. The previous implementation assumed that the content was short enough to be fully redrawn each frame, which is not a great idea when you have thousands of lines.
|
|
There may be a bug in `TlsRequest` when sending out large amounts of data.
|
|
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.
|
|
Tweaked the position to work without safe area insets as well.
It would make things easier to have the name as a child of the Identity button and keep the size of the button fixed.
|
|
Shuffled the widget flags a bit to make room for a new one.
|
|
|
|
Slightly thicker fetch progress indicator, smaller search query indicator on the phone.
|
|
Toolbar should reflect the colors of the current view, whether it's a page or the sidebar.
|
|
Swipes are working much better.
Todo:
- Pinch must always cancel/override edge swipes.
- Use the right palette for the "swipein" placeholder.
|
|
Swipes back and forward are now working, although there are some glitches remaining. Most notably, when swiping back the previous document does not appear until the finger is released.
|
|
|
|
|
|
Use a native file picker to open files. Declare support for .gmi/.gemini files so they can be opened via Files and share sheets.
|
|
|
|
Also fixing glitch with search input field where pressing Return would insert newline.
|
|
Memory used for RAM storage of media along with navigation history so it can be restored instantly.
|
|
|
|
|