summaryrefslogtreecommitdiff
path: root/src/app.c
AgeCommit message (Collapse)Author
2021-04-15Progressive document renderingJaakko Keränen
VisBuf now guarantees that all the buffers are sequentially ordered. This ensure complete utilization of all the buffers. Previously some buffers were not used at all, or allocated to the same origin as another one (!). DocumentWidget is able to progressively fill up a buffer while scrolling. After any change to the visible region has been detected (and there are no ongoing changes), prerender the remaining runs one at a time. This solves the issue where one text run would be always unnecessarily rendered while scrolling, even if the scroll distance was just one pixel.
2021-04-12Mobile: CertImportWidget, UI tweaksJaakko Keränen
The Import Identity dialog is now styled for mobile, although could use a little more tuning.
2021-04-12App: Mitigations against a possible crashJaakko Keränen
A tab switch may have ended up accessing a NULL pointer.
2021-04-10Allow using Tab key for bindingsJaakko Keränen
Tab was always consumed by focus cycling even though that should be at the lowest priority. IssueID #244
2021-04-10Mobile: Freeze UI draws when app hiddenJaakko Keränen
Maybe a workaround for the squished view issue?
2021-04-10Fixed opening drag-and-dropped Gopher linksJaakko Keränen
2021-04-09Haiku: fix default data dirNikolay Korotkiy
2021-04-08App: Default CA cert setupJaakko Keränen
In case prefs.cfg doesn't set CA file/path, we'll still need to initialize the CA cert store for later use.
2021-04-07SidebarWidget: Store width as resolution independent unitsJaakko Keränen
DPI and pixel ratio changes should not radically change width of the sidebar. IssueID #239
2021-04-05Mobile: Fixing the build post-1.3Jaakko Keränen
2021-04-05Added option to disable bold linksJaakko Keränen
IssueID #233
2021-04-03Drawing only during window updateJaakko Keränen
Glyphs were inadvertently being cached already during measuring for layout. DocumentWidget was buffering graphics too early. Now buffered draws are prepared during normal drawing, when needed.
2021-03-29Preferences: Collapse preformatted blocks on page loadJaakko Keränen
IssueID #180
2021-03-28Porting to HaikuNikolay Korotkiy
2021-03-25App: CleanupJaakko Keränen
2021-03-23UI language preference; switching at runtimeJaakko Keränen
IssueID #192
2021-03-22Basic language string mechanismJaakko Keränen
Added a set of English strings. Lang can load a language. LabelWidget can replace IDs in the label. IssueID #192
2021-03-22Lang: Began replacing UI strings with IDsJaakko Keränen
IssueID #192
2021-03-21iOS: Save to Files; hide toolbar on scrollJaakko Keränen
There is no downloads directory on mobile. Instead, the downloaded file is temporarily cached and given to the iOS document picker to export. Added an option to hide the bottom toolbar while scrolling down.
2021-03-20App: Periodic commands without timers/threadsJaakko Keränen
Now the periodic commands get posted on the main thread at intervals, and the event loop cooperates by not sleeping if there are periodic commands pending. The macOS animation hangup seems to be unrelated, though — perhaps some internal SDL/Metal machinery related to app refresh stopping for a while?
2021-03-20App: Looking at uneven frame redraw timesJaakko Keränen
2021-03-19CleanupJaakko Keränen
2021-03-18Mobile improvementsJaakko Keränen
Seeing if a few forced redraws will take care of the squished view issue. On the phone, showing and hiding the sidebar is not supposed to resize any documents.
2021-03-18Scrollbar fading and periodic commandsJaakko Keränen
Added a new mechanism to issue periodic but not per-frame commands. This is used for main-thread operations like checking if it's time to fade away the scrollbars. Scrollbars are faded away completely on Apple platforms. Adjusted list right margins accordingly.
2021-03-17App: Added 3rd fallback to find resources.lgrJaakko Keranen
Check the current directory.
2021-03-16Translation: Remember last used languagesJaakko Keränen
2021-03-15App: Decode URLs passed via command line argumentsJaakko Keränen
2021-03-13Text: Separate glyph caching procedureJaakko Keränen
Previously glyph caching was done during text rendering, but that would mean lots of swapping between rendering stuff to the cache and then immediately afterward rendering to the display. There would be a swap per each new glyph. Now the entire document's glyphs are precached at once when a request is finished. Glyphs are also cached in larger batches when new text needs to be drawn.
2021-03-13Arrange URL child indicators; widget arrangementJaakko Keränen
The indicators in the URL input field are now arranged horizontally, so they don't overlap. Improved arrangement of (un)collapsed widgets.
2021-03-13Mobile: Simplified window event handlingJaakko Keränen
The desktop window events do things that are not relevant on mobile, and may in fact be harmful. Since mobile is essentially fullscreen only, needed updates to root size are done whenever the window is redrawn.
2021-03-11Added option to word wrap plain text filesJaakko Keränen
On by default because there is no horizontal scrolling for plain text files.
2021-03-09Mobile: Revising phone-style dialogsJaakko Keränen
Sliding panels and left-edge swipes.
2021-03-09App: Initial bookmarksJaakko Keränen
Don't automatically make "Getting Started" a remote bookmark source. 1) Rather not DDOS my server. Remote sources are not cached currently. 2) While it's a nice demo of the feature, it's not essential. 3) Avoid appearance of a "call home" default that one needs to opt out of.
2021-03-07Windows: Fixed horizontal mouse wheel directionJaakko Keränen
2021-03-07Merge branch 'dev' of skyjake.fi:skyjake/lagrange into devJaakko Keränen
2021-03-07macOS: Mouse wheel horizontal directionJaakko Keränen
2021-03-07App: Fetch remote bookmarks after init finishedJaakko Keränen
2021-03-07Multithreading issuesJaakko Keränen
It was possible that the window was accessed from a background request `postCommand` before the window was created. The CA file/path from preferences must be set before TlsRequest is used.
2021-03-07Processing per-pixel scroll eventsJaakko Keränen
Do platform-specific processing of scroll events up front so widgets can support both types of scrolls everywhere. IssueID #166
2021-03-06Mobile: Dealing with keyboard heightJaakko Keränen
The software keyboard obstructs part of the UI, so need to offset the view if the focused input widget would not be visible.
2021-03-05Restructuring dialogs for mobileJaakko Keränen
On a phone, dialogs are restructured to be more vertical and full-width.
2021-03-04Save identity usage changes immediatelyJaakko Keränen
2021-03-04Possible crash when opening PreferencesJaakko Keränen
2021-03-04Changing UI scaling at runtimeJaakko Keränen
UI scaling factor is applied when closing the Preferences dialog. IssueID #83
2021-03-03Load keyboard modifier mapping from modmap.txtJaakko Keränen
IssueID #87
2021-03-02Windows: Implement IPC with mailslotsJaakko Keränen
2021-03-02Server certificates may also be verified by CAsJaakko Keränen
If the CA file/path are configured in preferences, trust CA verification over manual TOFU checks.
2021-03-01Added a resource for the --help instructionsJaakko Keränen
IssueID #174
2021-03-01Listing open tabs via command lineJaakko Keränen
IssueID #178
2021-02-28Single app instance; IPC mechanismJaakko Keränen
Only one instance of Lagrange is allowed to run per a runtime directory. Otherwise the instances will overwrite each others' files. Added a check at startup to see if an instance is already running. If so, options can be used to communicate with it. By default, a new tab is opened in the running instance. IssueID #37 IssueID #164 IssueID #174 IssueID #178