summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-02-12Windows: Custom frame behaviorJaakko Keränen
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.
2021-02-11Windows: Experimenting with a custom window frame and title barJaakko Keränen
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.
2021-02-11Windows: Draw something immediately when the window is openedJaakko Keränen
Avoids having a flash of white or other system-provided default window contents when opening a window for the first time.
2021-02-11Added keybinding for finding textJaakko Keränen
IssueID #153
2021-02-10Fixed URL path decoding issueJaakko Keränen
One should not decode characters that are reserved for the URL syntax.
2021-02-10Bookmarks: Fixed crash when removing a bookmark sourceJaakko Keränen
Remote bookmarks from a deleted source page were not immediately removed, so the UI got confused about the missing source bookmark. IssueID #154
2021-02-10Window: Keep scroll position when resizing verticallyJaakko Keränen
Fixed broken logic. IssueID #138
2021-02-10App: Events posted early may cause a crashJaakko Keränen
Attempting to ask SDL about a non-existent window's ID.
2021-02-10CleanupJaakko Keränen
2021-02-10Merge branch 'dev' of github.com:skyjake/lagrange into devJaakko Keränen
2021-02-10Window: Keep scroll position when resizing verticallyJaakko Keränen
IssueID #138
2021-02-09Feeds: Wait up to 10 seconds for responseJaakko Keränen
If a server doesn't respond, there is no use waiting indefinitely in a background request.
2021-02-08Bookmarks: Do not require a label for remote linksJaakko Keränen
IssueID #147
2021-02-08DocumentWidget: Update hover link after context menu closesJaakko Keränen
IssueID #145
2021-02-08CleanupJaakko Keränen
Function naming convention is: {method}_{class}() Ran clang-format on the changes.
2021-02-08Merge commit 'pullrequests/ThomasAdam/ta/shift-ins' into devJaakko Keränen
2021-02-07paste: refactor to allow for Shift+InsThomas Adam
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.
2021-02-07App: Determine first run based on existence of prefs.cfgJaakko Keränen
2021-02-07Windows: Check for a portable userdata directoryJaakko Keränen
IssueID #120
2021-02-07DocumentWidget: Wrong tab gets input query stringJaakko Keränen
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
2021-02-05Experimenting with an iOS buildJaakko Keränen
iPlatformApple applies to both macOS and iOS. Added iPlatformAppleDesktop and iPlatformAppleMobile to make a distinction between the two. IssueID #96
2021-02-05macOS: Fixed buildJaakko Keränen
2021-02-03XDG: Check XDG_CONFIG_HOME and the user's download directoryJaakko Keränen
Also added a build option to disable changing the user download directory within Lagrange, since that's set via XDG config.
2021-02-03Improved first-run experienceJaakko Keränen
Use a remote source for Getting Started bookmarks. Tweaked default values of preferences.
2021-02-03Window: Fixed invalid contents are restoring in fullscreen modeJaakko Keränen
When the window was put in the background in fullscreen mode and then restored to foreground, buffered contents were lost. IssueID #130
2021-02-03Window: Fullscreen mode shouldn't affect the retained window rectJaakko Keränen
IssueID #130
2021-02-03Added keybinding (F11) for toggling fullscreen modeJaakko Keränen
IssueID #130
2021-02-02Stripping the URL fragmentJaakko Keränen
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
2021-02-02Linux: Use SDL to query display monitor DPI valueJaakko Keränen
IssueID #133
2021-02-02Improved focus switching for dialogsJaakko Keränen
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.
2021-02-02InputWidget: Fixed cursor missing in an empty input widgetJaakko Keränen
2021-02-02App: List environment variables in "about:debug"Jaakko Keränen
2021-02-01DocumentWidget: Allow reloading the current URLJaakko Keränen
IssueID #129
2021-01-29Fixed drawing of widget framesJaakko Keränen
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.
2021-01-29Bookmarks: Remove default Gemini portsJaakko Keränen
Normalize bookmark URLs by removing the default Gemini ports.
2021-01-29Allow importing remote bookmarksJaakko Keränen
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.
2021-01-29SidebarWidget: Fixed word wrapping issue in unread feed titlesJaakko Keränen
Text width was measured with the wrong font.
2021-01-27Added preference for maximum cache sizeJaakko Keränen
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
2021-01-26Merge branch 'pullrequests/Br0000k/dev' into devJaakko Keränen
2021-01-26Keybindings for new tab, close tab, add bookmarkJaakko Keränen
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
2021-01-26InputWidget: Optional domain punycoding for UIJaakko Keränen
2021-01-25Added 'Close tab' key bindingBr0000k
Added 'Close tab' key binding option in response to issue #121
2021-01-25LookupWidget: Fixed Unicode errorsJaakko Keränen
Must decode Unicode characters since the search term is UTF-8. IssueID #119
2021-01-24Prevent address bar spoofingBr0000k
Prevent IDN homograph attack
2021-01-24DocumentWidget: Fix/improve home row link navigationJaakko Keränen
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
2021-01-19Feeds: Don't trim quotes from titlesJaakko Keränen
2021-01-19Closing tabs with the middle mouse buttonJaakko Keränen
IssueID #115
2021-01-18Better versioned file name for visited URLsJaakko Keränen
2021-01-18Fixed URL visit time serializationJaakko Keränen
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.
2021-01-18Fixed opening heading feed entries in a tabJaakko Keränen
The heading goto fragment wasn't being stripped appropriately from the URLs.