A bunch of small bug fixes (#3067)

This commit is contained in:
alschmiedt
2019-09-23 08:59:50 -07:00
committed by GitHub
parent b0e700307a
commit c16ea62b58
5 changed files with 28 additions and 22 deletions

View File

@@ -368,18 +368,20 @@ Blockly.FieldColour.prototype.onKeyDown_ = function(e) {
* @package
*/
Blockly.FieldColour.prototype.onBlocklyAction = function(action) {
if (action === Blockly.navigation.ACTION_PREVIOUS) {
this.moveHighlightBy_(0, -1);
return true;
} else if (action === Blockly.navigation.ACTION_NEXT) {
this.moveHighlightBy_(0, 1);
return true;
} else if (action === Blockly.navigation.ACTION_OUT) {
this.moveHighlightBy_(-1, 0);
return true;
} else if (action === Blockly.navigation.ACTION_IN) {
this.moveHighlightBy_(1, 0);
return true;
if (this.picker_) {
if (action === Blockly.navigation.ACTION_PREVIOUS) {
this.moveHighlightBy_(0, -1);
return true;
} else if (action === Blockly.navigation.ACTION_NEXT) {
this.moveHighlightBy_(0, 1);
return true;
} else if (action === Blockly.navigation.ACTION_OUT) {
this.moveHighlightBy_(-1, 0);
return true;
} else if (action === Blockly.navigation.ACTION_IN) {
this.moveHighlightBy_(1, 0);
return true;
}
}
return Blockly.FieldColour.superClass_.onBlocklyAction.call(this, action);
};
@@ -583,6 +585,7 @@ Blockly.FieldColour.prototype.dropdownDispose_ = function() {
Blockly.unbindEvent_(this.onMouseEnterWrapper_);
Blockly.unbindEvent_(this.onMouseLeaveWrapper_);
Blockly.unbindEvent_(this.onKeyDownWrapper_);
this.picker_ = null;
};
Blockly.fieldRegistry.register('field_colour', Blockly.FieldColour);

View File

@@ -280,6 +280,7 @@ Blockly.FieldDropdown.prototype.widgetCreate_ = function() {
*/
Blockly.FieldDropdown.prototype.widgetDispose_ = function() {
this.menu_.dispose();
this.menu_ = null;
};
/**

View File

@@ -398,7 +398,7 @@ Blockly.ASTNode.prototype.navigateBetweenStacks_ = function(forward) {
if (!(curLocation instanceof Blockly.Block)) {
curLocation = curLocation.getSourceBlock();
}
if (!curLocation) {
if (!curLocation || !curLocation.workspace) {
return null;
}
var curRoot = curLocation.getRootBlock();

View File

@@ -185,7 +185,7 @@ Blockly.Cursor.prototype.out = function() {
var newNode = curNode.out();
if (newNode && newNode.getType() === Blockly.ASTNode.types.BLOCK) {
newNode = newNode.prev();
newNode = newNode.prev() || newNode;
}
if (newNode) {

View File

@@ -713,13 +713,7 @@ Blockly.navigation.onBlocklyAction = function(action) {
if (Blockly.keyboardAccessibilityMode) {
if (!readOnly) {
var curNode = Blockly.getMainWorkspace().getCursor().getCurNode();
if (curNode && curNode.getType() === Blockly.ASTNode.types.FIELD) {
actionHandled = curNode.getLocation().onBlocklyAction(action);
}
if (!actionHandled) {
actionHandled = Blockly.navigation.handleActions_(action);
}
actionHandled = Blockly.navigation.handleActions_(action);
// If in readonly mode only handle valid actions.
} else if (Blockly.navigation.READONLY_ACTION_LIST.indexOf(action) > -1) {
actionHandled = Blockly.navigation.handleActions_(action);
@@ -750,7 +744,15 @@ Blockly.navigation.handleActions_ = function(action) {
}
return true;
} else if (Blockly.navigation.currentState_ === Blockly.navigation.STATE_WS) {
return Blockly.navigation.workspaceOnAction_(action);
var curNode = Blockly.getMainWorkspace().getCursor().getCurNode();
var actionHandled = false;
if (curNode && curNode.getType() === Blockly.ASTNode.types.FIELD) {
actionHandled = curNode.getLocation().onBlocklyAction(action);
}
if (!actionHandled) {
actionHandled = Blockly.navigation.workspaceOnAction_(action);
}
return actionHandled;
} else if (Blockly.navigation.currentState_ === Blockly.navigation.STATE_FLYOUT) {
return Blockly.navigation.flyoutOnAction_(action);
} else if (Blockly.navigation.currentState_ === Blockly.navigation.STATE_TOOLBOX) {