Age | Commit message (Collapse) | Author |
|
A borderless SDL window gets no standard window behavior, so
this commit implements support for some of them. There is
special handling for the window frame and various snapping modes.
Not quite finished yet... It might make sense to research if
a custom window class could work with this app (with SDL); could be
less work.
|
|
Added the build option ENABLE_CUSTOM_FRAME that causes the window
to be created as borderless. Lagrange's own UI widgets are used to
draw the title bar elements, including the window buttons.
There is plenty of sizing behavior still missing, for instance
snapping to fullscreen left/right side, double-clicking the frame
edges, and proper maximize mode that doesn't cover the entire screen.
The window system menu is also missing, but that can be shown
manually when appropriate.
A command-line option should also be provided to disable winbar
in case the default title bar is required.
|
|
Avoids having a flash of white or other system-provided default window
contents when opening a window for the first time.
|
|
IssueID #153
|
|
One should not decode characters that are reserved for the URL syntax.
|
|
Remote bookmarks from a deleted source page were not immediately
removed, so the UI got confused about the missing source bookmark.
IssueID #154
|
|
Fixed broken logic.
IssueID #138
|
|
Attempting to ask SDL about a non-existent window's ID.
|
|
|
|
|
|
IssueID #138
|
|
If a server doesn't respond, there is no use waiting indefinitely in a background request.
|
|
IssueID #147
|
|
IssueID #145
|
|
Function naming convention is: {method}_{class}()
Ran clang-format on the changes.
|
|
|
|
Under Linux/Unix, the key combination of "Shift+Ins" allows for pasting
from the clipboard into most applications. Refactor pasting to its own
function and define the key combination of Shift+Ins to allow for this.
|
|
|
|
IssueID #120
|
|
Input submission events are now tied to a particular document and not implicitly to the current one.
As a workaround, input queries will now force a tab to the foreground.
IssueID #142
|
|
iPlatformApple applies to both macOS and iOS. Added iPlatformAppleDesktop and iPlatformAppleMobile to make a distinction between the two.
IssueID #96
|
|
|
|
Also added a build option to disable changing the user download
directory within Lagrange, since that's set via XDG config.
|
|
Use a remote source for Getting Started bookmarks. Tweaked default
values of preferences.
|
|
When the window was put in the background in fullscreen mode and then
restored to foreground, buffered contents were lost.
IssueID #130
|
|
IssueID #130
|
|
IssueID #130
|
|
Lagrange will retain URL fragments when parsing gemtext, but will strip them when making requests or when a DocumentWidget's URL is set. This allows opening URLs with fragments in an external browser.
IssueID #128
|
|
IssueID #133
|
|
Widgets can now be defined as being the "focus root", i.e., the topmost
widget under which focus switching happens. Normally this is the window
root widget, but dialogs use this flag to confine focus switching
inside the dialog.
InputWidget in Overwrite mode will focus switch to the next focusable
widget when the text field becomes full.
|
|
|
|
|
|
IssueID #129
|
|
In CertImportWidget at regular-DPI 1.0 scaling, the frames of the certificate and private key labels were drawn incorrectly.
Now the non-button LabelWidget relies on Widget to draw the frames.
|
|
Normalize bookmark URLs by removing the default Gemini ports.
|
|
Importing bookmarks should be allowed to create local copies of remote bookmarks, so that one can add any locally missing bookmarks from a shared remote source.
|
|
Text width was measured with the wrong font.
|
|
Rather than simply limiting each tab's cache to 50 most recent URLs, there is now a user-configurable maximum size. If more content is cached, the oldest/largest responses will be removed from memory.
The default maximum cache size is 10 MB.
IssueID #109
|
|
|
|
Added new keybindings for opening and closing a tab. Also added a keybinding for adding a bookmark so ⌘D can be made available.
On macOS, there is a default Window > Close menu item, so treat that as a "tabs.close" command to make it bindable.
IssueID #121
|
|
|
|
Added 'Close tab' key binding option in response to issue #121
|
|
Must decode Unicode characters since the search term is UTF-8.
IssueID #119
|
|
Prevent IDN homograph attack
|
|
Removed the second `U` from the set of home row keys for link navigation.
Added a new command bound to `.` (period) for switching to the next set of links for home row navigation. This makes it possible to access all visible links via keyboard no matter how many there are. `.` can also be used to activate home row navigation if it isn't active.
IssueID #111
|
|
|
|
IssueID #115
|
|
|
|
The timestamps written to "visited.txt" were being shifted by GMT offset on each write/read, rendering them increasingly incorrect.
Since these timestamps cannot be trusted, ignore the old file and keep proper timestamp values in "visited2.txt" from now on.
It is also more efficient to not convert each timestamp to a date when serializing.
|
|
The heading goto fragment wasn't being stripped appropriately from the URLs.
|