FieldDropdown now has onItemSelected(..) method to handle the menu item selection action. Variable renames and deletes are now handled here, instead of during validation.
Also fixes an issue deleting variables used by less than two blocks.
Fixes#723.
* Make a copy of listeners (fix#680), allow ID lookup in flyout
* Move flyout cursor change to when block drags
* Fire a stack-click event in flyout, to match workspace
* Check result of window.confirm before deleting variables.
* Create CONTRIBUTING.md
* Localisation updates from https://translatewiki.net.
* Cherrypick fixes made directly to master back into develop (#619)
* Check result of window.confirm before deleting variables.
* Create CONTRIBUTING.md
* rebuild
* Localisation updates from https://translatewiki.net.
* Minor wording change.
* Localisation updates from https://translatewiki.net.
* Localisation updates from https://translatewiki.net.
* Simplify the handling of the active desc for a toolbox without categories.
* Remove tables from the HTML. Move the toolbar buttons to the end so that they don't impede switching between the toolbox and workspace.
* When cutting or copying a block, do not include blocks joined to it.
* Add shadow to flyout buttons.
* Move 'create new group' button to the bottom of each toolbox block, and remove other buttons if there is nothing in the workspace.
* Add keyboard shortcuts for cut, copy and paste operations.
* Remove clipboard buttons to simplify UI.
* Prevent setting a number value to NaN. Select the field value on entry to an input field. State the contents of the input field when describing the field.
* Add aria-level and aria-selected attrs to dropdowns.
* routine recompile
* Update demo to latest interpreter.
* Move 'move to marked spot' button to the top of the block options list.
* Fix incorrect aria-levels in toolbox tree component.
* Add new fields to toolbarButtonConfig.
* Recompile
* Remove CONTRIBUTING
Previously if a workspace.clear() was executed whilst a field was being edited then the following errors would appear in the console and the blockly workspace would become unresponsive.
Uncaught TypeError: Cannot read property 'removeChangeListener' of null(anonymous function) @ blockly_compressed.js:19071Blockly.WidgetDiv.hide @ blockly_compressed.js:20609Blockly.WidgetDiv.hideIfOwner @ blockly_compressed.js:20620Blockly.FieldTextInput.dispose @ blockly_compressed.js:18961Blockly.Input.dispose @ blockly_compressed.js:15786Blockly.Block.dispose @ blockly_compressed.js:17275Blockly.BlockSvg.dispose @ blockly_compressed.js:18327Blockly.Block.dispose @ blockly_compressed.js:17272Blockly.BlockSvg.dispose @ blockly_compressed.js:18327Blockly.Block.dispose @ blockly_compressed.js:17272Blockly.BlockSvg.dispose @ blockly_compressed.js:18327Blockly.Block.dispose @ blockly_compressed.js:17272Blockly.BlockSvg.dispose @ blockly_compressed.js:18327Blockly.Workspace.clear @ blockly_compressed.js:14510window.onmessage @ index.html:175
blockly_compressed.js:19041
Uncaught TypeError: Cannot read property 'scale' of nullBlockly.FieldTextInput.resizeEditor_ @ blockly_compressed.js:19041Blockly.Workspace.fireChangeListener @ blockly_compressed.js:14544Blockly.Events.fireNow_ @ blockly_compressed.js:18833
Explicitly hiding the popup div first avoids this problem.