-
Notifications
You must be signed in to change notification settings - Fork 949
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
Hold sync during set_state + fix selection widgets flakiness #3271
Merged
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
In these tests, the "order 2" assertion will fail, since backbone processes the state using "for (key in attrs)", which means declaration order in most browsers (unofficial standard). Here our code will: - Process the change:index event, setting the index to 1, which will not work, since it at that time will be 0 options in the listbox. - Process the change:_options_labels, adding the 3 options, but keeping the -1 index.
Use the update event (which is called from "change" event), instead of relying on the individual change:key events. This way, we can handle both options and index being set at once.
vidartf
force-pushed
the
sync-set-state
branch
from
September 8, 2021 11:46
f4d3645
to
43bf922
Compare
Updated to reflect change in behavior.
@maartenbreddels for awareness. Background in #2256 and #2259 |
martinRenou
approved these changes
Oct 18, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
jasongrout
added a commit
to jasongrout/ipywidgets
that referenced
this pull request
Mar 2, 2022
We have to explicitly use hold_sync in the test, since jupyter-widgets#3271 was targeted to 8.0 and not backported to 7.x.
jasongrout
added a commit
to jasongrout/ipywidgets
that referenced
this pull request
Mar 2, 2022
We have to explicitly use hold_sync in the test, since jupyter-widgets#3271 was targeted to 8.0 and not backported to 7.x.
14 tasks
maartenbreddels
added a commit
to maartenbreddels/ipywidgets
that referenced
this pull request
Nov 29, 2022
If we do, we get very inconsistent behaviour, see jupyter-widgets#3635 for more details and jupyter-widgets#3271 for the reasons to implement this.
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.
Open question: All
update
events will be passed theoptions
argument by backbone, if given. Currently we do not reflect this in our base classes unless we use it. Are we happy with this, or do we want to add that? Adding it could lead to typing noise for third-party widgets which implement their ownupdate
function, and JS is happy to discard superfluous arguments to a function.