-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix key-nav for List/Matrix-View; add examples/times-tables.rs #282
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Also rename nomenclature: WidgetId is a path over keys
This will become impossible to support for generic keys.
ListData: add make_id and reconstruct_key
In practice we never allow sizes below the minimum, but this was causing issues with width-for-height text-wrapping logic.
Behaviour when min>max differed from the libstd clamp fns.
Uses data from the first few rows/columns to work out ideal size requirements of cells. Not perfect, but better.
Before this, lag is demonstrable in the times-table example by setting count = 30, enlarging view (while still not all) and scrolling to near the right edge.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The List/Matrix View widgets now construct child keys from data entries, thus making navigation targets persistent when a view widget is scrolled.
The
make_layout
macro now supportsalign(top)
, etc. (bottom
,left
,right
,default
).Add
WidgetId::iter
New
times-tables
example for testingMatrixView
:Initial size of
ListView
andMatrixView
is now determined using data: if any child widgets already exist, use them as-is; otherwise load initial data entries up to ideal-size and use that. The result still isn't perfect, but it's a lot better than without. It isn't obvious how to improve further (other than by loading even more data in advance).Simplify
SizeRules::solve_seq
by removing "squashing" behaviour if target < min-required-size; instead use the minimum. In practice we never see this behaviour anyway, but it was messing up width-for-height calculations with view widgets.Several fixes to
MatrixView
and a few tweaks toListView
(to keep things consistent).