From d1d89abca84e7af7f9a377dbd1f3b4b68a133636 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Thu, 27 Aug 2015 15:08:26 +0100 Subject: [PATCH] Fix block locations on flyouts. Output tabs are negative coordinates. --- core/flyout.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/flyout.js b/core/flyout.js index d93d518db..36b1a5b69 100644 --- a/core/flyout.js +++ b/core/flyout.js @@ -468,9 +468,11 @@ Blockly.Flyout.prototype.reflow = function() { var margin = this.CORNER_RADIUS; var blocks = this.workspace_.getTopBlocks(false); for (var x = 0, block; block = blocks[x]; x++) { - var root = block.getSvgRoot(); - var blockHW = block.getHeightWidth(); - flyoutWidth = Math.max(flyoutWidth, blockHW.width); + var width = block.getHeightWidth().width; + if (block.outputConnection) { + width -= Blockly.BlockSvg.TAB_WIDTH; + } + flyoutWidth = Math.max(flyoutWidth, width); } flyoutWidth += margin + Blockly.BlockSvg.TAB_WIDTH + margin / 2 + Blockly.Scrollbar.scrollbarThickness; @@ -487,8 +489,10 @@ Blockly.Flyout.prototype.reflow = function() { if (block.flyoutRect_) { block.flyoutRect_.setAttribute('width', blockHW.width); block.flyoutRect_.setAttribute('height', blockHW.height); + // Blocks with output tabs are shifted a bit. + var tab = block.outputConnection ? Blockly.BlockSvg.TAB_WIDTH : 0; block.flyoutRect_.setAttribute('x', - this.RTL ? blockXY.x - blockHW.width : blockXY.x); + this.RTL ? blockXY.x - blockHW.width + tab : blockXY.x - tab); block.flyoutRect_.setAttribute('y', blockXY.y); } }