-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Mutated procedures_ifreturn
detaches child block, but undoing doesn't reattach it.
#7950
Comments
[Stack trace added to issue description.] This appears to be superficially similar to #2037 and #8225, but initial investigation suggests that the root cause may be slightly different. In particular, the relevant events that occur at step 5 of the reproduction (i.e., the ones potentially being undone) are (formatted for comparability; apologies to anyone with a narrow monitor):
Notably: although there is a |
Root cause analysisI made local changes to
Having run Observations:
So the
In addition, there is a confounding issue is that the block mutation is occurring after the (Im?)Possible RemediesThe favoured proposed fixes for #8225 (currently in local testing) do not resolve this issue, and since there are several underlying and interacting causes (no There are a few approaches that would partially address this bug:
|
Tangentially related issue: #6456. |
procedures_ifreturn
detaches child block, but undoing doesn't reattach it.
Root cause analysis continuedDiscussing this and related issues with @NeilFraser, he pointed out that the underlying cause of this issue is that the Blockly program is momentarily in an invalid state after the Filed #8467 to track solving the underlying general issue. |
Check for duplicates
Description
Child connections automatically detach when a mutation removes the connection. This isn't undoable but should be.
Reproduction steps
procedures_ifreturn
block to the workspace.procedures_defnoreturn
block to the workspace, separately.procedures_ifreturn
block.procedures_ifreturn
as a stack child to theprocedures_defnoreturn
block. This will mutate theprocedures_ifreturn
and detach its own child.procedures_ifreturn
block. The block will move, but neither its mutation nor the detached child will get undone.Stack trace
Screenshots
No response
Browsers
Chrome desktop
The text was updated successfully, but these errors were encountered: