Random improvements to require statements.
Removal of some obviously dead CSS.
.blocklyDropDownDiv no longer supresses text selection (see comment in PR).
This PR drops the compiled size by 4 KB, which is larger than I was expecting.
No Blockly instances need both Horizontal and Vertical flyouts. Dropping one of these saves 2 KB. Some don’t need flyouts at all (e.g. Blockly Games Puzzle or readonly documentation blocks).
Also removes three private accesses from workspaceSvg into toolbox tree.
The strategy for workspace.updateToolbox is no longer to clear and repopulate the toolbox, but rather to throw away the old toolbox and rebuild a new one. This is simpler and more reliable.
This commit trims off another KB from the compiled code.
This drops the compiled size by 25 kb if there are no categories. Which also indicates that the toolbox itself suffers from really bad bloat. The toolbox should not represent 1/6th of our codebase.
* Don't try to zoom flyouts and mutators
Fixes#2752
Flyouts and mutator workspaces don't have enough info to handle
zooming correctly, so they were throwing errors if you pinched them.
This adds a check to quit a zoom early if in either of those. We
might want to revisit later if we should support zooming on them.
* Add TODO
It seems wrong that Blockly.ConnectionDB.init reaches in to create a property on workspace.
It seems wrong that this database isn’t disposed of when the workspace is.
It seems unnecessary that disposed connections need to drop their reference *to* the workspace’s database since the connection object is going away anyway, and the databases aren’t.
Previously it returned x,y,width,height. Returning top,bottom,left,right results in simpler code, both in this function and in downstream callers.
This commit makes the minumum change to the metrics_test. I’m happy to change the test’s data if that makes more sense.
Old: a box object with two coordinate objects, each with two numbers.
New: a box object with four numbers.
The old system would make sense if there was a reason to group the top-left and bottom-right coordinates. But in our code we only pulled out top/bottom/left/right numbers.
New code is simpler and faster.
document.documentElement.clientWidth/clientHeight seems to work everywhere Blockly works. Closure’s functions are mind-numbingly complex due to IE5, old WebKit, Opera 8, and others.
Previously, one could drag (and hold) a quark outside the bounds of a mutator bubble, then scroll, and the old code wouldn’t query the mutator for gestures.