diff --git a/core/renderers/measurables/rows.js b/core/renderers/measurables/rows.js index d7e9a4376..6b28e50a9 100644 --- a/core/renderers/measurables/rows.js +++ b/core/renderers/measurables/rows.js @@ -482,11 +482,24 @@ Blockly.blockRendering.InputRow.prototype.measure = function() { this.widthWithConnectedBlocks = this.width + connectedBlockWidths; }; - +/** + * @override + */ Blockly.blockRendering.InputRow.prototype.getLastSpacer = function() { + // Adding spacing after the input connection would look weird. Find the + // before the last input connection and add it there instead. if (this.hasExternalInput || this.hasStatement) { - var spacer = this.elements[this.elements.length - 3]; - return /** @type {Blockly.blockRendering.InRowSpacer} */ (spacer); + var elems = this.elements; + for (var i = elems.length - 1, elem; (elem = elems[i]); i--) { + if (elem.isSpacer()) { + continue; + } + if (elem.isInput) { + var spacer = elems[i - 1]; + return /** @type {Blockly.blockRendering.InRowSpacer} */ (spacer); + } + } + } return Blockly.blockRendering.InputRow.superClass_.getLastSpacer.call(this); }; diff --git a/core/renderers/thrasos/info.js b/core/renderers/thrasos/info.js index 2284a4286..b42f941c2 100644 --- a/core/renderers/thrasos/info.js +++ b/core/renderers/thrasos/info.js @@ -253,14 +253,12 @@ Blockly.thrasos.RenderInfo.prototype.alignRowElements_ = function() { * @override */ Blockly.thrasos.RenderInfo.prototype.addAlignmentPadding_ = function(row, missingSpace) { - var elems = row.elements; var input = row.getLastInput(); if (input) { var firstSpacer = row.getFirstSpacer(); var lastSpacer = row.getLastSpacer(); if (row.hasExternalInput || row.hasStatement) { // Get the spacer right before the input socket. - lastSpacer = elems[elems.length - 3]; row.widthWithConnectedBlocks += missingSpace; } // Decide where the extra padding goes.