summaryrefslogtreecommitdiff
path: root/src/periodic.c
AgeCommit message (Collapse)Author
2022-02-19Fixed several event handling issuesJaakko Keränen
Events are expected to have a valid windowID now, and the current window also has to be correct when dispatching or processing any events.
2022-01-07App: Optimizing periodic eventsJaakko Keränen
IssueID #416
2021-12-19DocumentWidget: Refactor to separate DocumentViewJaakko Keränen
Work in progress, but now DocumentView at least has its own type. The relationship is a bit muddled, though.
2021-05-27Periodic: Fixed dispatch without active UI rootJaakko Keränen
2021-04-29Periodic: Handling removal during iterationJaakko Keränen
2021-04-28Working on multiple UI rootsJaakko Keränen
Various refactorings and fixes to handle root-global and window-global state, root-specific palettes, and proper coordinate system changes (e.g., when opening menus). UI events are posted and handled in the context of a specific root.
2021-04-27Refactor: Update event processing to not assume a single UI rootJaakko Keränen
Most actions should occur in the context of the current UI root.
2021-04-27Keeping track of current UI rootJaakko Keränen
The current UI root should always be set explicitly before the UI is accessed.
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-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-20Periodic: Use a thread instead of timersJaakko Keränen
This still doesn't solve the strange refresh time issue. Perhaps it's better to find a solution that doesn't rely on background threads.
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.