From bbbb2bc2efcff41f8ff3649a80f0c4b20101b8f4 Mon Sep 17 00:00:00 2001 From: Ray Schamp <ray@scratch.mit.edu> Date: Tue, 27 Sep 2016 11:50:42 -0400 Subject: [PATCH] Bind workspaceUpdate to vm Update the workspace when changing the target --- src/lib/vm-manager.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/vm-manager.js b/src/lib/vm-manager.js index f9efd49eb..10c561fa2 100644 --- a/src/lib/vm-manager.js +++ b/src/lib/vm-manager.js @@ -1,3 +1,5 @@ +const ScratchBlocks = require('scratch-blocks'); + module.exports = { attachWorkspace: function (vm, workspace) { vm.on('STACK_GLOW_ON', data => workspace.glowStack(data.id, true)); @@ -5,6 +7,13 @@ module.exports = { vm.on('BLOCK_GLOW_ON', data => workspace.glowBlock(data.id, true)); vm.on('BLOCK_GLOW_OFF', data => workspace.glowBlock(data.id, false)); vm.on('VISUAL_REPORT', data => workspace.reportValue(data.id, data.value)); + vm.on('workspaceUpdate', data => { + ScratchBlocks.Events.disable(); + workspace.clear(); + let dom = ScratchBlocks.Xml.textToDom(data.xml); + ScratchBlocks.Xml.domToWorkspace(dom, workspace); + ScratchBlocks.Events.enable(); + }); }, attachMouseEvents: function (vm, stage) { document.addEventListener('mousemove', function (e) { -- GitLab