From 13b4b206aea0c66c5003f9cee0d26083a9887b51 Mon Sep 17 00:00:00 2001 From: the-can-of-soup <91906096+the-can-of-soup@users.noreply.github.com> Date: Sat, 11 Apr 2026 23:16:53 -0400 Subject: [PATCH 1/2] add `base` outer block shape --- core/block_render.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/block_render.js b/core/block_render.js index 72c5a7e326..87ef33e3c8 100644 --- a/core/block_render.js +++ b/core/block_render.js @@ -490,6 +490,9 @@ Blockly.BlockSvg.FIELD_TEXTINPUT_ANIMATE_POSITIONING = false; * See also: `Blockly.BlockSvg.computeOutputPadding_`. */ Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING = { + base : { // Outer shape: any. + + }, 1 : { // Outer shape: hexagon. 0 : 5 * Blockly.BlockSvg.GRID_UNIT, // Field in hexagon. 1 : 2 * Blockly.BlockSvg.GRID_UNIT, // Hexagon in hexagon. From 80c91d711f632d3e805dc50d0040b66e967197bb Mon Sep 17 00:00:00 2001 From: the-can-of-soup <91906096+the-can-of-soup@users.noreply.github.com> Date: Sat, 11 Apr 2026 23:25:05 -0400 Subject: [PATCH 2/2] add functionality of `base` outer block shape --- core/block_render.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/block_render.js b/core/block_render.js index 87ef33e3c8..a2cd7117bf 100644 --- a/core/block_render.js +++ b/core/block_render.js @@ -491,7 +491,6 @@ Blockly.BlockSvg.FIELD_TEXTINPUT_ANIMATE_POSITIONING = false; */ Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING = { base : { // Outer shape: any. - }, 1 : { // Outer shape: hexagon. 0 : 5 * Blockly.BlockSvg.GRID_UNIT, // Field in hexagon. @@ -1319,8 +1318,11 @@ Blockly.BlockSvg.prototype.computeOutputPadding_ = function(inputRows) { row.paddingStart += customShape.blockPaddingStart(this, otherShape, firstInput, firstField, row); } - const paddingStart = (Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING[shape] || {})[otherShape]; - row.paddingStart += paddingStart === undefined ? Blockly.BlockSvg.DEFAULT_SHAPE_PADDING : paddingStart; + const internalPadding = (Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING[shape] || {}); + const paddingStart = internalPadding[otherShape] ?? Blockly.BlockSvg.DEFAULT_SHAPE_PADDING + + internalPadding.base ?? 0 + + Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING.base[otherShape] ?? 0; + row.paddingStart += paddingStart; // End row padding: based on last input or last field. var lastInput = row[row.length - 1]; @@ -1356,8 +1358,10 @@ Blockly.BlockSvg.prototype.computeOutputPadding_ = function(inputRows) { row.paddingEnd += customShape.blockPaddingEnd(this, otherShape, lastInput, lastField, row); } - const paddingEnd = (Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING[shape] || {})[otherShape]; - row.paddingEnd += paddingEnd === undefined ? Blockly.BlockSvg.DEFAULT_SHAPE_PADDING : paddingEnd; + const paddingEnd = internalPadding[otherShape] ?? Blockly.BlockSvg.DEFAULT_SHAPE_PADDING + + internalPadding.base ?? 0 + + Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING.base[otherShape] ?? 0; + row.paddingEnd += paddingEnd; }; /**