summaryrefslogtreecommitdiff
path: root/src/ui
AgeCommit message (Collapse)Author
2021-02-19Touch: Scrollbars can be dragged via touchJaakko Keränen
Widgets can be flagged as being touch-draggable, which makes them receive finger down/motion/up events directly, and no momentum scrolling is applied.
2021-02-19Touch: Scroll momentum tuning; edge swipesJaakko Keränen
2021-02-18iOS: Working on touch event handlingJaakko Keränen
Handle finger down, motion, and up events to implement basic taps, long presses, and inertia scrolling. Much finetuning still to be done, and certain widgets like input fields and scrollbars need a direct drag mode (they were working fine via the "mouse" events already).
2021-02-16Search engine queries via the navbarJaakko Keränen
Any text that doesn't look like a URL is passed onto the configured search URL as a query string. IssueID #157
2021-02-16macOS: Retaining window position vs. zoomedJaakko Keränen
2021-02-16DocumentWidget: Only center normal pagesJaakko Keränen
`about:` and error pages are centered as they are "internal" pages.
2021-02-15DocumentWidget: Scroll position while resizingJaakko Keränen
Keep the top of the view fixed during horizontal resizing.
2021-02-15Preferences: Saturation levels as percentagesJaakko Keränen
2021-02-15Added user preference to disable vertical centering of pagesJaakko Keränen
The centering option affects all pages, including "about:" and error messages.
2021-02-14Windows: Improved custom frame behavior; default to disabledJaakko Keränen
2021-02-14Color: Extended range for color escapesJaakko Keränen
Use a double \r for color IDs 95 and beyond.
2021-02-14DocumentWidget: Alignment excludes bannerJaakko Keränen
Short pages are vertically centered, but the site banner should be excluded from this because it is not part of the actual page contents.
2021-02-14SidebarWidget: Handling feed entry URLs with spacesJaakko Keränen
The sidebar failed to realize that an entry was the current one and/or already read, because URL encoding is not consistently applied. This needs addressing soon — internally, all URLs should have a consistent format (fully encoded or decoded, NFC normalized).
2021-02-13Windows: Custom frame preference; further minor tweaksJaakko Keränen
2021-02-13Text: No scaling for text glyphsJaakko Keränen
2021-02-13Windows: Custom frame app icon, finishing touchesJaakko Keränen
2021-02-13Windows: Further custom frame improvementsJaakko Keränen
Saving the window rectangle and snap mode. Frame title alignment.
2021-02-13Windows: Improved custom frame behaviorJaakko Keränen
Windows-key shortcuts and cursor edge snapping. Still missing: window shadow and saving the snap mode.
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-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-10Window: Keep scroll position when resizing verticallyJaakko Keränen
IssueID #138
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-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-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-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-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-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-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