mirror of
https://github.com/google/blockly.git
synced 2026-01-23 08:40:10 +01:00
Fix zoom center button. Reverse disconnect wiggle.
This commit is contained in:
@@ -706,9 +706,7 @@ Blockly.BlockSvg.prototype.onMouseMove_ = function(e) {
|
||||
if (this_.parentBlock_) {
|
||||
// Push this block to the very top of the stack.
|
||||
this_.setParent(null);
|
||||
if (workspace_.scale >= 1) {
|
||||
this_.disconnectUiEffect();
|
||||
}
|
||||
this_.disconnectUiEffect();
|
||||
}
|
||||
this_.setDragging_(true);
|
||||
workspace_.recordDeleteAreas();
|
||||
@@ -1097,7 +1095,9 @@ Blockly.BlockSvg.disposeUiStep_ = function(clone, rtl, start, workspaceScale) {
|
||||
*/
|
||||
Blockly.BlockSvg.prototype.connectionUiEffect = function() {
|
||||
this.workspace.playAudio('click');
|
||||
|
||||
if (this.workspace.scale < 1) {
|
||||
return; // Too small to care about visual effects.
|
||||
}
|
||||
// Determine the absolute coordinates of the inferior block.
|
||||
var xy = Blockly.getSvgXY_(/** @type {!Element} */ (this.svgGroup_),
|
||||
this.workspace);
|
||||
@@ -1144,12 +1144,15 @@ Blockly.BlockSvg.connectionUiStep_ = function(ripple, start, workspaceScale) {
|
||||
*/
|
||||
Blockly.BlockSvg.prototype.disconnectUiEffect = function() {
|
||||
this.workspace.playAudio('disconnect');
|
||||
if (this.workspace.scale < 1) {
|
||||
return; // Too small to care about visual effects.
|
||||
}
|
||||
// Horizontal distance for bottom of block to wiggle.
|
||||
var DISPLACEMENT = 10;
|
||||
// Scale magnitude of skew to height of block.
|
||||
var height = this.getHeightWidth().height;
|
||||
var magnitude = Math.atan(DISPLACEMENT / height) / Math.PI * 180;
|
||||
if (this.RTL) {
|
||||
if (!this.RTL) {
|
||||
magnitude *= -1;
|
||||
}
|
||||
// Start the animation.
|
||||
|
||||
@@ -113,9 +113,10 @@ Blockly.Field.prototype.init = function(block) {
|
||||
'x': -Blockly.BlockSvg.SEP_SPACE_X / 2,
|
||||
'y': 0,
|
||||
'height': 16}, this.fieldGroup_, this.sourceBlock_.workspace);
|
||||
/** @type {Element} */
|
||||
/** @type {!Element} */
|
||||
this.textElement_ = Blockly.createSvgElement('text',
|
||||
{'class': 'blocklyText', 'y': this.size_.height - 12.5}, this.fieldGroup_);
|
||||
{'class': 'blocklyText', 'y': this.size_.height - 12.5},
|
||||
this.fieldGroup_);
|
||||
|
||||
this.updateEditable();
|
||||
block.getSvgRoot().appendChild(this.fieldGroup_);
|
||||
|
||||
@@ -913,18 +913,26 @@ Blockly.WorkspaceSvg.prototype.zoomCenter = function(type) {
|
||||
|
||||
/**
|
||||
* Reset zooming and dragging.
|
||||
* @param {!Event} e Mouse down event.
|
||||
*/
|
||||
Blockly.WorkspaceSvg.prototype.zoomReset = function() {
|
||||
Blockly.WorkspaceSvg.prototype.zoomReset = function(e) {
|
||||
this.scale = 1;
|
||||
this.updateGridPattern_();
|
||||
var metrics = this.getMetrics();
|
||||
this.scrollbar.set((metrics.contentWidth - metrics.viewWidth) / 2,
|
||||
(metrics.contentHeight - metrics.viewHeight) / 2);
|
||||
Blockly.hideChaff(false);
|
||||
if (this.flyout_) {
|
||||
// No toolbox, resize flyout.
|
||||
this.flyout_.reflow();
|
||||
}
|
||||
// Center the workspace once the scaling has had a chance to take effect.
|
||||
var thisWorkspace = this;
|
||||
var scroll = function() {
|
||||
var metrics = thisWorkspace.getMetrics();
|
||||
thisWorkspace.scrollbar.set((metrics.contentWidth - metrics.viewWidth) / 2,
|
||||
(metrics.contentHeight - metrics.viewHeight) / 2);
|
||||
};
|
||||
setTimeout(scroll, 0);
|
||||
// This event has been handled. No need to bubble up to the document.
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -163,11 +163,13 @@ Blockly.ZoomControls.prototype.createDom = function() {
|
||||
|
||||
// Attach event listeners.
|
||||
Blockly.bindEvent_(zoomresetSvg, 'mousedown', workspace, workspace.zoomReset);
|
||||
Blockly.bindEvent_(zoominSvg, 'mousedown', null, function() {
|
||||
Blockly.bindEvent_(zoominSvg, 'mousedown', null, function(e) {
|
||||
workspace.zoomCenter(1);
|
||||
e.stopPropagation(); // Don't start a workspace scroll.
|
||||
});
|
||||
Blockly.bindEvent_(zoomoutSvg, 'mousedown', null, function() {
|
||||
Blockly.bindEvent_(zoomoutSvg, 'mousedown', null, function(e) {
|
||||
workspace.zoomCenter(-1);
|
||||
e.stopPropagation(); // Don't start a workspace scroll.
|
||||
});
|
||||
|
||||
return this.svgGroup_;
|
||||
|
||||
Reference in New Issue
Block a user