diff --git a/core/block_svg.js b/core/block_svg.js index b95504cba..2638466c7 100644 --- a/core/block_svg.js +++ b/core/block_svg.js @@ -837,16 +837,27 @@ Blockly.BlockSvg.prototype.dispose = function(healStack, animate) { this.warningTextDb_ = null; } + // If the block is rendered we need to record the event before disposing of + // the icons to prevent losing information. + // TODO (#1969): Remove event generation/firing once comments are fixed. + var deleteEvent; + if (Blockly.Events.isEnabled()) { + deleteEvent = new Blockly.Events.BlockDelete(this); + } Blockly.Events.disable(); try { var icons = this.getIcons(); for (var i = 0; i < icons.length; i++) { icons[i].dispose(); } + // TODO (#1969): Move out of disable block once comments are fixed. + Blockly.BlockSvg.superClass_.dispose.call(this, healStack); } finally { Blockly.Events.enable(); } - Blockly.BlockSvg.superClass_.dispose.call(this, healStack); + if (Blockly.Events.isEnabled() && deleteEvent) { + Blockly.Events.fire(deleteEvent); + } this.svgGroup_.parentNode.removeChild(this.svgGroup_); blockWorkspace.resizeContents();