Age | Commit message (Collapse) | Author |
|
# Conflicts:
# CMakeLists.txt
# Depends-Android.cmake
# res/about/version.gmi
# res/lang/cs.bin
# res/lang/eo.bin
# res/lang/es.bin
# res/lang/fi.bin
# res/lang/gl.bin
# res/lang/ia.bin
# res/lang/ie.bin
# res/lang/ru.bin
# res/lang/sr.bin
# res/lang/tok.bin
# res/lang/tr.bin
# res/lang/uk.bin
# res/lang/zh_Hant.bin
# src/app.c
# src/main.c
# src/ui/documentwidget.c
# src/ui/labelwidget.c
# src/ui/sidebarwidget.c
# src/ui/util.c
|
|
When navigating via home row, ensure that other widgets will not trigger when keys are pressed. The document is given keyboard focus even though it is not flagged as focusable, to make sure it gets to handle all the keys first.
On macOS, disable all native menu items that have a home row keyboard shortcut.
Also on macOS, disable all native menus when changing bindings.
IssueID #419
|
|
The navbar is an important tap target, so it should be the same height as most menu items and the toolbar.
|
|
Only notify once, after the arrangement is done.
|
|
|
|
Switched the phone sidebar to use the iOS half/full-height sliding sheet design. This is better for finger reachability and for retaining access to the current page.
|
|
|
|
|
|
An [x] button appears on tab buttons when hovering on them. Still needs a bit of layout tweaks and the first tab doesn't have a button yet.
|
|
Popup context menus now use NSMenu. There are still has a few glitches with the navbar identity button, but most menus are working.
SDL required another little tweak to force it to update mouse button state after the synchronously handled context menu goes away. Otherwise SDL's internal mouse button state shows that the right mouse button is held down.
|
|
Toe dipping into multiple window support by allowing popup menu widgets to be displayed in independent windows.
This is not a 100% replacement for native menus, but it gets pretty close.
|
|
A proper scrollbar would be grabbable, but this is just a visual indication that a menu/dialog/panel can be scrolled.
IssueID #337
|
|
|
|
Widgets can now be marked for buffering their contents, which is useful if their contents change seldom but they are drawn often.
For example, the navbar is always visible but doesn't change very often, and during animations menu contents are static but there is a moving animation so everything gets drawn 60 FPS.
Focus handling was also improved so the lookup results can be scrolled while entering text, and one can tap outside an input field to unfocus it.
|
|
|
|
The sidebars are not supposed to have borders or background fades.
|
|
Shuffled the widget flags a bit to make room for a new one.
|
|
When a page is opened from the sidebar, swiping back will now reopen the sidebar. Another swipe will dismiss the sidebar and navigate back as usual.
Attempted to cache theme colors in GmDocument, but there were issues with theme changes.
|
|
Swipes back and forward are now working, although there are some glitches remaining. Most notably, when swiping back the previous document does not appear until the finger is released.
|
|
|
|
|
|
Edge swipe direction is determined in a more dynamic way.
|
|
|
|
- fill the safe area with theme background
- don't set button hover states if dragging/scrolling
- edge-draggable widgets must be flagged as such
- Preferences top panel offset matches sibling panels' offset
- allow toolbar to unhide when document is not scrollable
|
|
Up/down movement sometimes ended up in the wrong cursor position.
Now the nearest overflow-scrollable parent scrolls to keep the cursor visible.
|
|
A widget may copy its height from another widget.
|
|
Now every DocumentWidget is guaranteed a unique ID. The window title is updated when the keyroot chages.
|
|
Some of the logic for arranging widgets was invalid, leading to problems with the navbar:
- cannot resize children if own size depends on their size
- expanding children won't expand unless resizing all children
|
|
Added a menu for changing the split mode.
|
|
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.
|
|
Most actions should occur in the context of the current UI root.
|
|
|
|
The Import Identity dialog is now styled for mobile, although could use a little more tuning.
|
|
DocumentWidget now supports a long-press drag selection mode. The context menu was moved to the URL bar, replacing the reload button.
|
|
|
|
Printing the list of parents.
|
|
There is a problem with repeated arrangements: the previous set sizes affect subsequent outcomes. This results in Preferences not being able to reduce in size, only to expand.
It should be possible to reset sizes back to zero/minimum size before starting an arrangement, but LabelWidget needs to cooperate by using `minSize` to set its default size. `minSize` is preferable to fixedSize because then the widget can go through the usual arranging logic.
To be continued at a later time...
|
|
Two-column headings are supposed to span both columns.
|
|
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.
|
|
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.
|
|
Orientation and safe inset changes are now applied to phone dialogs.
There is still the occasional unscrollable dialog, but it seems random?
|
|
The indicators in the URL input field are now arranged horizontally, so they don't overlap.
Improved arrangement of (un)collapsed widgets.
|
|
IssueID #175
|
|
|
|
|
|
|
|
Sliding panels and left-edge swipes.
|
|
Avoid mouse motion events to prevent spurious hover states in the UI.
|
|
The software keyboard obstructs part of the UI, so need to offset the view if the focused input widget would not be visible.
|
|
|