mirror of
https://github.com/google/blockly.git
synced 2026-01-11 19:07:08 +01:00
A bunch of small bug fixes (#3067)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -280,6 +280,7 @@ Blockly.FieldDropdown.prototype.widgetCreate_ = function() {
|
||||
*/
|
||||
Blockly.FieldDropdown.prototype.widgetDispose_ = function() {
|
||||
this.menu_.dispose();
|
||||
this.menu_ = null;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user