From 2d30ed2e9cb3c055b5aa9828694d730a18a31082 Mon Sep 17 00:00:00 2001 From: kozbial Date: Tue, 13 Aug 2019 17:11:14 -0700 Subject: [PATCH 1/3] Update statementInput width to reflect what is actually being rendered. --- .../block_rendering_rewrite/block_render_info.js | 12 ++---------- .../block_rendering_constants.js | 5 ----- .../renderers/block_rendering_rewrite/measurables.js | 3 +-- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/core/renderers/block_rendering_rewrite/block_render_info.js b/core/renderers/block_rendering_rewrite/block_render_info.js index a317f7455..5f1c22267 100644 --- a/core/renderers/block_rendering_rewrite/block_render_info.js +++ b/core/renderers/block_rendering_rewrite/block_render_info.js @@ -487,9 +487,7 @@ Blockly.blockRendering.RenderInfo.prototype.computeBounds_ = function() { for (var r = 0; r < this.rows.length; r++) { var row = this.rows[r]; row.measure(); - if (!row.hasStatement) { - blockWidth = Math.max(blockWidth, row.width); - } + blockWidth = Math.max(blockWidth, row.width); if (row.hasStatement) { var statementInput = row.getLastInput(); var innerWidth = row.width - statementInput.width; @@ -502,13 +500,7 @@ Blockly.blockRendering.RenderInfo.prototype.computeBounds_ = function() { this.statementEdge = widestStatementRowFields; - if (widestStatementRowFields) { - this.width = - Math.max(blockWidth, - widestStatementRowFields + Blockly.blockRendering.constants.NOTCH.width * 2); - } else { - this.width = blockWidth; - } + this.width = blockWidth; for (var r = 0; r < this.rows.length; r++) { var row = this.rows[r]; diff --git a/core/renderers/block_rendering_rewrite/block_rendering_constants.js b/core/renderers/block_rendering_rewrite/block_rendering_constants.js index f4ae269b2..5f84019cf 100644 --- a/core/renderers/block_rendering_rewrite/block_rendering_constants.js +++ b/core/renderers/block_rendering_rewrite/block_rendering_constants.js @@ -126,11 +126,6 @@ Blockly.blockRendering.constants.EXTERNAL_VALUE_INPUT_PADDING = 2; Blockly.blockRendering.constants.EMPTY_STATEMENT_INPUT_HEIGHT = Blockly.blockRendering.constants.MIN_BLOCK_HEIGHT; -Blockly.blockRendering.constants.EMPTY_STATEMENT_INPUT_WIDTH = 32; - -Blockly.blockRendering.constants.POPULATED_STATEMENT_INPUT_WIDTH = 25; - - Blockly.blockRendering.constants.START_POINT = Blockly.utils.svgPaths.moveBy(0, 0); /** diff --git a/core/renderers/block_rendering_rewrite/measurables.js b/core/renderers/block_rendering_rewrite/measurables.js index cce0b39b6..b4c5ce4cc 100644 --- a/core/renderers/block_rendering_rewrite/measurables.js +++ b/core/renderers/block_rendering_rewrite/measurables.js @@ -285,15 +285,14 @@ Blockly.blockRendering.StatementInput = function(input) { if (!this.connectedBlock) { this.height = Blockly.blockRendering.constants.EMPTY_STATEMENT_INPUT_HEIGHT; - this.width = Blockly.blockRendering.constants.EMPTY_STATEMENT_INPUT_WIDTH; } else { - this.width = Blockly.blockRendering.constants.POPULATED_STATEMENT_INPUT_WIDTH; this.height = this.connectedBlockHeight + Blockly.blockRendering.constants.STATEMENT_BOTTOM_SPACER; if (this.connectedBlock.nextConnection) { this.height -= this.notchShape.height; } } + this.width = this.notchShape.width * 2; }; goog.inherits(Blockly.blockRendering.StatementInput, Blockly.blockRendering.Input); From d921c4ff47ff0d5cd02d05eff8bf35546a5b8836 Mon Sep 17 00:00:00 2001 From: kozbial Date: Tue, 13 Aug 2019 18:01:24 -0700 Subject: [PATCH 2/3] Using statement input xPos instead of statementEdge. --- core/renderers/block_rendering_rewrite/block_render_draw.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index ed5a2e3b4..9bb1dd2c5 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -198,8 +198,9 @@ Blockly.blockRendering.Drawer.prototype.drawStatementInput_ = function(row) { if (this.highlighter_) { this.highlighter_.drawStatementInput(row); } + var input = row.getLastInput(); // Where to start drawing the notch, which is on the right side in LTR. - var x = row.xPos + row.statementEdge + + var x = row.xPos + input.xPos + Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT + Blockly.blockRendering.constants.NOTCH.width; From a476564fa23ee0974b5aa5b2e9022e1c3a86b2b9 Mon Sep 17 00:00:00 2001 From: kozbial Date: Wed, 14 Aug 2019 11:34:32 -0700 Subject: [PATCH 3/3] Fixing width computation and start x for statement input draw. --- core/renderers/block_rendering_rewrite/block_render_draw.js | 4 +--- core/renderers/block_rendering_rewrite/measurables.js | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index 9bb1dd2c5..6e76654f5 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -200,9 +200,7 @@ Blockly.blockRendering.Drawer.prototype.drawStatementInput_ = function(row) { } var input = row.getLastInput(); // Where to start drawing the notch, which is on the right side in LTR. - var x = row.xPos + input.xPos + - Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT + - Blockly.blockRendering.constants.NOTCH.width; + var x = input.xPos + input.width; var innerTopLeftCorner = Blockly.blockRendering.constants.NOTCH.pathRight + ' h -' + diff --git a/core/renderers/block_rendering_rewrite/measurables.js b/core/renderers/block_rendering_rewrite/measurables.js index b4c5ce4cc..379ad42ea 100644 --- a/core/renderers/block_rendering_rewrite/measurables.js +++ b/core/renderers/block_rendering_rewrite/measurables.js @@ -292,7 +292,8 @@ Blockly.blockRendering.StatementInput = function(input) { this.height -= this.notchShape.height; } } - this.width = this.notchShape.width * 2; + this.width = Blockly.blockRendering.constants.NOTCH_OFFSET_LEFT + + this.notchShape.width; }; goog.inherits(Blockly.blockRendering.StatementInput, Blockly.blockRendering.Input);