From 797b8dae46a3549f65bb57188b572d7258b69487 Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Fri, 9 Aug 2019 16:42:45 -0700 Subject: [PATCH] Include tab width in block width --- core/flyout_base.js | 5 +---- core/renderers/block_rendering_rewrite/block_render_draw.js | 2 +- .../block_rendering_rewrite/block_render_draw_highlight.js | 2 +- core/renderers/block_rendering_rewrite/block_render_info.js | 6 ++++++ .../block_rendering_rewrite/highlight_constants.js | 2 -- core/renderers/block_rendering_rewrite/measurables.js | 1 + 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/flyout_base.js b/core/flyout_base.js index 3d5de6688..4fc58bfc9 100644 --- a/core/flyout_base.js +++ b/core/flyout_base.js @@ -723,12 +723,9 @@ Blockly.Flyout.prototype.moveRectToBlock_ = function(rect, block) { rect.setAttribute('width', blockHW.width); rect.setAttribute('height', blockHW.height); - // Blocks with output tabs are shifted a bit. - var tab = block.outputConnection ? Blockly.BlockSvg.TAB_WIDTH : 0; var blockXY = block.getRelativeToSurfaceXY(); rect.setAttribute('y', blockXY.y); - rect.setAttribute('x', - this.RTL ? blockXY.x - blockHW.width + tab : blockXY.x - tab); + rect.setAttribute('x', this.RTL ? blockXY.x - blockHW.width : blockXY.x); }; /** diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index b61dfe0e4..40cca2cb5 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -133,7 +133,7 @@ Blockly.blockRendering.Drawer.prototype.drawTop_ = function() { } this.positionPreviousConnection_(); this.steps_.push( - Blockly.utils.svgPaths.moveBy(this.info_.startX, 0)); + Blockly.utils.svgPaths.moveBy(this.info_.startX, this.info_.startY)); for (var i = 0, elem; elem = elements[i]; i++) { if (elem.type === 'round corner') { this.steps_.push(Blockly.blockRendering.constants.OUTSIDE_CORNERS.topLeft); diff --git a/core/renderers/block_rendering_rewrite/block_render_draw_highlight.js b/core/renderers/block_rendering_rewrite/block_render_draw_highlight.js index 8a6b7cd28..ff4cf0a36 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw_highlight.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw_highlight.js @@ -73,7 +73,7 @@ Blockly.blockRendering.Highlighter = function(info, pathObject) { Blockly.blockRendering.Highlighter.prototype.drawTopCorner = function(row) { this.steps_.push( - Blockly.utils.svgPaths.moveBy(this.info_.startX, 0)); + Blockly.utils.svgPaths.moveBy(this.info_.startX, this.info_.startY)); for (var i = 0, elem; elem = row.elements[i]; i++) { if (elem.type === 'square corner') { this.steps_.push(Blockly.blockRendering.highlightConstants.START_POINT); diff --git a/core/renderers/block_rendering_rewrite/block_render_info.js b/core/renderers/block_rendering_rewrite/block_render_info.js index f8fcd1ea1..f5324abef 100644 --- a/core/renderers/block_rendering_rewrite/block_render_info.js +++ b/core/renderers/block_rendering_rewrite/block_render_info.js @@ -697,6 +697,12 @@ Blockly.blockRendering.RenderInfo.prototype.finalize_ = function() { // Performance note: this could be combined with the draw pass, if the time // that this takes is excessive. But it shouldn't be, because it only // accesses and sets properties that already exist on the objects. + + // TODO: Decide if there's a better place for this. + if (this.outputConnection) { + this.startX = this.outputConnection.startX; + this.width += this.outputConnection.width; + } var yCursor = 0; for (var r = 0; r < this.rows.length; r++) { var row = this.rows[r]; diff --git a/core/renderers/block_rendering_rewrite/highlight_constants.js b/core/renderers/block_rendering_rewrite/highlight_constants.js index 264d535c5..ea42cbe53 100644 --- a/core/renderers/block_rendering_rewrite/highlight_constants.js +++ b/core/renderers/block_rendering_rewrite/highlight_constants.js @@ -211,7 +211,6 @@ Blockly.blockRendering.highlightConstants.JAGGED_TEETH = (function() { Blockly.blockRendering.highlightConstants.START_HAT = (function() { var hatHeight = Blockly.blockRendering.constants.START_HAT.height; var pathRtl = - Blockly.utils.svgPaths.moveBy(0, hatHeight) + Blockly.utils.svgPaths.moveBy(25, -8.7) + Blockly.utils.svgPaths.curve('c', [ @@ -221,7 +220,6 @@ Blockly.blockRendering.highlightConstants.START_HAT = (function() { ]); var pathLtr = - Blockly.utils.svgPaths.moveBy(0, hatHeight) + Blockly.utils.svgPaths.curve('c', [ Blockly.utils.svgPaths.point(17.8, -9.2), diff --git a/core/renderers/block_rendering_rewrite/measurables.js b/core/renderers/block_rendering_rewrite/measurables.js index 9c9fe1a0b..9d04c0e6d 100644 --- a/core/renderers/block_rendering_rewrite/measurables.js +++ b/core/renderers/block_rendering_rewrite/measurables.js @@ -337,6 +337,7 @@ Blockly.blockRendering.OutputConnection = function() { this.height = this.connectionShape.height; this.width = this.connectionShape.width; this.connectionOffsetY = Blockly.blockRendering.constants.TAB_OFFSET_FROM_TOP; + this.startX = this.width; }; goog.inherits(Blockly.blockRendering.OutputConnection, Blockly.blockRendering.Measurable);