diff --git a/core/blockly.js b/core/blockly.js index 6962bc2b2..910fb1658 100644 --- a/core/blockly.js +++ b/core/blockly.js @@ -693,7 +693,12 @@ Blockly.setStyle = function(style) { workspace.refreshToolboxSelection(); for (var i = 0; i < blocks.length; i++) { var block = blocks[i]; - block.setStyle(block.getStyleName()); + var blockStyleName = block.getStyleName(); + + block.setStyle(blockStyleName); + if (block.mutator) { + block.mutator.updateBlockStyle(blockStyleName); + } } var event = new Blockly.Events.Ui(null, 'styleChanged'); diff --git a/core/mutator.js b/core/mutator.js index b1367749c..ed85ce149 100644 --- a/core/mutator.js +++ b/core/mutator.js @@ -397,6 +397,25 @@ Blockly.Mutator.prototype.dispose = function() { Blockly.Icon.prototype.dispose.call(this); }; +/** + * Update the styles on all blocks in the mutator. + * @public + */ +Blockly.Mutator.prototype.updateBlockStyle = function() { + if (this.workspace_ && this.workspace_.getAllBlocks()){ + var workspaceBlocks = this.workspace_.getAllBlocks(); + for (var i = 0; i < workspaceBlocks.length; i++) { + var block = workspaceBlocks[i]; + block.setStyle(block.getStyleName()); + } + var flyoutBlocks = this.workspace_.flyout_.workspace_.getAllBlocks(); + for (var i = 0; i < flyoutBlocks.length; i++) { + var block = flyoutBlocks[i]; + block.setStyle(block.getStyleName()); + } + } +}; + /** * Reconnect an block to a mutated input. * @param {Blockly.Connection} connectionChild Connection on child block.