fix: handle textinput max-width edge cases #484
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that the cursor seemed to be adding an extra space which the width calculations weren't accounting for. This also led me to discover an edge case with the view (
offset
/offsetRight
) calculation when the cursor (pos
) sits at the very end. Additionally,View()
was always rendering the cursor, even whenfocus
was false, which the comment suggests should not be the case.These should all be resolved, such that
Width
is now fully respected in bothView()
andplaceholderView()
: they should never render a string that exceeds the requested width. (Well... with one caveat: I did not touch the suggestion/completion logic, as I've never used it. I did leave a comment, however, that perhaps suggestions shouldn't even render when the component does not have focus.)Fixes #358, #307