Age | Commit message (Collapse) | Author |
|
|
|
Fixed issues: scrollbar goes under toolbar, value input dialog grows too tall, Undo/Select All in the clip menu.
|
|
|
|
Touch-based interaction requires a different kind of selection and copy/paste behavior. This isn't done yet; especially multi-line text still needs work.
|
|
|
|
|
|
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.
|
|
Overflow-scrolling should be allowed over input fields, too.
Fixed placement of the URL label in the link context menu.
|
|
The SDL text input rectangle function applies some sort of offset that is inappropriate on iOS.
|
|
|
|
In word-wrapped lines, a character will be hit multiple times and the
latest hit is what counts.
|
|
|
|
Emoji variation selectors would confuse cursor positioning and insertion behavior, breaking the assumption that each line ends with a single newline.
|
|
These were working in v1.5 but were broken in v1.6.
|
|
In the long-form text entry mode, don't use the user's configured Return key behavior, since that's meant for shorter input fields.
Input fields no longer lose focus when the window loses input focus, but the cursor will stop blinking. This makes it easier to resume typing after switching window focus, and also on macOS the symbol picker is easier to use.
|
|
For example, any URL field should disallow line breaks. The line break modifier preference should be disregarded in an input field where there are no line breaks.
|
|
|
|
Slowed down the cursor blinking by half. Adjusted the focused input widget colors to be less harsh in dark mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cursor position was miscalculated because WrapText works a bit differently with maxWidth==0.
Selection was not always updated as intended.
|
|
|
|
Fixed update after undo. Line wrap long destination URLs. Don't open a new upload dialog if one is already open.
|
|
Tweak that lets a single-line editor (URL field) keep its first line visible when unfocused.
|
|
|
|
Only process mouse wheel events on the root over which the mouse is currently.
|
|
|
|
|
|
|
|
|
|
User preference for line break / accept behavior in input fields. Still needs to be added to the Preferences dialog.
|
|
|
|
At a low level when measuring/drawing text, replace all characters with an override character.
|
|
|
|
|
|
Cursor movement and pasting.
|
|
|
|
|
|
Finding cursor position via coordinates. Handling the mark. Visual wrapped lines vs. content lines. Vertical scrolling inside the visual range.
|
|
`InputWidget` needs to be better at handling multiple lines. The previous implementation assumed that the content was short enough to be fully redrawn each frame, which is not a great idea when you have thousands of lines.
|
|
`run_Font_` was moving the Y cursor position twice for each line break.
Checking for the HarfBuzz UNSAFE_TO_BREAK flag leads to some unexpected behavior near edges of words.
The old `tryAdvanceNoWrap` method should return the maximum horizontal advance of the text, and not the cursor position's advance.
`draw_WrapText` used the wrong foreground color.
`TextBuf` now uses WrapText to do all the measuring and drawing, making things much simpler.
|
|
Use advance and not bounds.
|
|
The distinction between measure_Text and advance_Text was not very clear. Now there are only measure_Text functions that return both the bounds and the cursor position advancement, and the appropriate metrics are used by the caller.
|
|
Internally, all URIs should be converted to a canonical form so that they can be compared against each other.
The canonical form is an IRI with spaces and reserved characters percent-encoded.
|
|
|
|
Also fixing glitch with search input field where pressing Return would insert newline.
|