Merge pull request #3697 from BeksOmega/fix/break-break-undo-2

fix: Break breaking undo.
This commit is contained in:
Rachel Fenichel
2020-02-19 15:37:41 -08:00
committed by GitHub
2 changed files with 20 additions and 16 deletions

View File

@@ -327,24 +327,28 @@ Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN = {
/**
* Called whenever anything on the workspace changes.
* Add warning if this flow block is not nested inside a loop.
* @param {!Blockly.Events.Abstract} _e Change event.
* @param {!Blockly.Events.Abstract} e Change event.
* @this {Blockly.Block}
*/
onchange: function(_e) {
if (!this.workspace.isDragging || this.workspace.isDragging()) {
return; // Don't change state at the start of a drag.
onchange: function(e) {
// Don't change state if:
// * It's at the start of a drag.
// * It's not a move event.
// * Or the moving block is not this block.
if (!this.workspace.isDragging || this.workspace.isDragging() ||
e.type != Blockly.Events.BLOCK_MOVE || e.blockId != this.id) {
return;
}
if (Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN
.getSurroundLoop(this)) {
this.setWarningText(null);
if (!this.isInFlyout) {
this.setEnabled(true);
}
} else {
this.setWarningText(Blockly.Msg['CONTROLS_FLOW_STATEMENTS_WARNING']);
if (!this.isInFlyout && !this.getInheritedDisabled()) {
this.setEnabled(false);
}
var enabled = Blockly.Constants.Loops.CONTROL_FLOW_IN_LOOP_CHECK_MIXIN
.getSurroundLoop(this);
this.setWarningText(enabled ? null :
Blockly.Msg['CONTROLS_FLOW_STATEMENTS_WARNING']);
if (!this.isInFlyout) {
var group = Blockly.Events.getGroup();
// Makes it so the move and the disable event get undone together.
Blockly.Events.setGroup(e.group);
this.setEnabled(enabled);
Blockly.Events.setGroup(group);
}
}
};

View File

@@ -1180,7 +1180,7 @@ Blockly.BlockSvg.prototype.setDisabled = function(disabled) {
Blockly.BlockSvg.prototype.setEnabled = function(enabled) {
if (this.isEnabled() != enabled) {
Blockly.BlockSvg.superClass_.setEnabled.call(this, enabled);
if (this.rendered) {
if (this.rendered && !this.getInheritedDisabled()) {
this.updateDisabled();
}
}