diff --git a/core/gesture.js b/core/gesture.js index f9503b931..9023b272f 100644 --- a/core/gesture.js +++ b/core/gesture.js @@ -960,10 +960,9 @@ Blockly.Gesture.prototype.getInsertionMarkers = function() { * @return {boolean} True if gesture is occurring. */ Blockly.Gesture.inProgress = function() { - // If a drag is occurring, then it involves a selected block on a workspace. - if (Blockly.selected) { - var currentWorkspace = Blockly.selected.workspace; - if (currentWorkspace && currentWorkspace.currentGesture_) { + var workspaces = Blockly.Workspace.getAll(); + for (var i = 0, workspace; workspace = workspaces[i]; i++) { + if (workspace.currentGesture_) { return true; } } diff --git a/core/inject.js b/core/inject.js index 0c88f32d2..57d2a13b4 100644 --- a/core/inject.js +++ b/core/inject.js @@ -421,8 +421,8 @@ Blockly.init_ = function(mainWorkspace) { Blockly.inject.bindDocumentEvents_ = function() { if (!Blockly.documentEventsBound_) { Blockly.bindEventWithChecks_(document, 'scroll', null, function() { - for (var workspaceId in Blockly.Workspace.WorkspaceDB_) { - var workspace = Blockly.Workspace.WorkspaceDB_[workspaceId]; + var workspaces = Blockly.Workspace.getAll(); + for (var i = 0, workspace; workspace = workspaces[i]; i++) { if (workspace.updateInverseScreenCTM) { workspace.updateInverseScreenCTM(); } diff --git a/core/workspace.js b/core/workspace.js index d8703f8e0..67c603ee7 100644 --- a/core/workspace.js +++ b/core/workspace.js @@ -734,6 +734,18 @@ Blockly.Workspace.getById = function(id) { return Blockly.Workspace.WorkspaceDB_[id] || null; }; +/** + * Find all workspaces. + * @return {!Array.} Array of workspaces. + */ +Blockly.Workspace.getAll = function() { + var workspaces = []; + for (var workspaceId in Blockly.Workspace.WorkspaceDB_) { + workspaces.push(Blockly.Workspace.WorkspaceDB_[workspaceId]); + } + return workspaces; +}; + // Export symbols that would otherwise be renamed by Closure compiler. Blockly.Workspace.prototype['clear'] = Blockly.Workspace.prototype.clear; Blockly.Workspace.prototype['clearUndo'] =