diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index 2e80b5d98..fd337ed8a 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -214,8 +214,7 @@ Blockly.blockRendering.Drawer.prototype.drawStatementInput_ = function(row) { var innerTopLeftCorner = input.notchShape.pathRight + Blockly.utils.svgPaths.lineOnAxis('h', - -(Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT - - Blockly.blockRendering.constants.INSIDE_CORNERS.width)) + + -(input.notchOffset - Blockly.blockRendering.constants.INSIDE_CORNERS.width)) + Blockly.blockRendering.constants.INSIDE_CORNERS.pathTop; var innerHeight = @@ -420,8 +419,7 @@ Blockly.blockRendering.Drawer.prototype.positionInlineInputConnection_ = functio Blockly.blockRendering.Drawer.prototype.positionStatementInputConnection_ = function(row) { var input = row.getLastInput(); if (input.connection) { - var connX = row.xPos + row.statementEdge + - Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT; + var connX = row.xPos + row.statementEdge + input.notchOffset; if (this.info_.RTL) { connX *= -1; } @@ -457,7 +455,7 @@ Blockly.blockRendering.Drawer.prototype.positionExternalValueConnection_ = funct Blockly.blockRendering.Drawer.prototype.positionPreviousConnection_ = function() { var topRow = this.info_.topRow; if (topRow.connection) { - var x = topRow.xPos + Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT; + var x = topRow.xPos + topRow.notchOffset; var connX = (this.info_.RTL ? -x : x); topRow.connection.connectionModel.setOffsetInBlock(connX, 0); } diff --git a/core/renderers/block_rendering_rewrite/block_render_info.js b/core/renderers/block_rendering_rewrite/block_render_info.js index 9565e57ac..d8d79757e 100644 --- a/core/renderers/block_rendering_rewrite/block_render_info.js +++ b/core/renderers/block_rendering_rewrite/block_render_info.js @@ -403,26 +403,26 @@ Blockly.blockRendering.RenderInfo.prototype.getInRowSpacing_ = function(prev, ne } // Spacing between a square corner and a previous or next connection if (next.isPreviousConnection()) { - return Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT; + return next.notchOffset; } else if (next.isNextConnection()) { // Next connections are shifted slightly to the left (in both LTR and RTL) // to make the dark path under the previous connection show through. var offset = (this.RTL ? 1 : -1) * Blockly.blockRendering.constants.DARK_PATH_OFFSET / 2; - return Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT + offset; + return next.notchOffset + offset; } } // Spacing between a rounded corner and a previous or next connection. if (prev.isRoundedCorner()) { if (next.isPreviousConnection()) { - return Blockly.blockRendering.constants.NOTCH_OFFSET_ROUNDED_CORNER_PREV; + return next.notchOffset - Blockly.blockRendering.constants.CORNER_RADIUS; } else if (next.isNextConnection()) { // Next connections are shifted slightly to the left (in both LTR and RTL) // to make the dark path under the previous connection show through. var offset = (this.RTL ? 1 : -1) * Blockly.blockRendering.constants.DARK_PATH_OFFSET / 2; - return Blockly.blockRendering.constants.NOTCH_OFFSET_ROUNDED_CORNER_PREV + offset; + return next.notchOffset - Blockly.blockRendering.constants.CORNER_RADIUS + offset; } } diff --git a/core/renderers/block_rendering_rewrite/block_rendering_constants.js b/core/renderers/block_rendering_rewrite/block_rendering_constants.js index f39b06718..4a896d65c 100644 --- a/core/renderers/block_rendering_rewrite/block_rendering_constants.js +++ b/core/renderers/block_rendering_rewrite/block_rendering_constants.js @@ -74,14 +74,6 @@ Blockly.blockRendering.constants.CORNER_RADIUS = 8; Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT = Blockly.blockRendering.constants.NOTCH_WIDTH; -// This is the width from where a rounded corner ends to where a previous -// connection starts. -// The position of the notch should not change as the rounded corner decreases -// in radius. -Blockly.blockRendering.constants.NOTCH_OFFSET_ROUNDED_CORNER_PREV = - Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT - - Blockly.blockRendering.constants.CORNER_RADIUS; - Blockly.blockRendering.constants.STATEMENT_BOTTOM_SPACER = 5; Blockly.blockRendering.constants.STATEMENT_INPUT_PADDING_LEFT = 20; Blockly.blockRendering.constants.BETWEEN_STATEMENT_PADDING_Y = 4; diff --git a/core/renderers/block_rendering_rewrite/measurables.js b/core/renderers/block_rendering_rewrite/measurables.js index 6905df843..db4c82fb5 100644 --- a/core/renderers/block_rendering_rewrite/measurables.js +++ b/core/renderers/block_rendering_rewrite/measurables.js @@ -154,8 +154,7 @@ Blockly.blockRendering.StatementInput = function(input) { this.height -= this.notchShape.height; } } - this.width = Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT + - this.notchShape.width; + this.width = this.notchOffset + this.notchShape.width; }; goog.inherits(Blockly.blockRendering.StatementInput, Blockly.blockRendering.Input); diff --git a/core/renderers/measurables/base.js b/core/renderers/measurables/base.js index bf2b414a8..45e63742f 100644 --- a/core/renderers/measurables/base.js +++ b/core/renderers/measurables/base.js @@ -63,6 +63,14 @@ Blockly.blockRendering.Measurable.prototype.connectionShape = Blockly.blockRendering.Measurable.prototype.notchShape = Blockly.blockRendering.constants.NOTCH; +/** + * The offset from the left side of a block or the inside of a statement input + * to the left side of the connection notch. + * @type {number} + */ +Blockly.blockRendering.Measurable.prototype.notchOffset = + Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT; + // TODO: We may remove these helper functions if all of them end up being direct // checks against types. diff --git a/core/renderers/measurables/rows.js b/core/renderers/measurables/rows.js index 5d432fbdd..d61feca0f 100644 --- a/core/renderers/measurables/rows.js +++ b/core/renderers/measurables/rows.js @@ -155,6 +155,14 @@ Blockly.blockRendering.Row = function() { Blockly.blockRendering.Row.prototype.notchShape = Blockly.blockRendering.constants.NOTCH; +/** + * The offset from the left side of a block or the inside of a statement input + * to the left side of the connection notch. + * @type {number} + */ +Blockly.blockRendering.Row.prototype.notchOffset = + Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT; + /** * Inspect all subcomponents and populate all size properties on the row. * @package