diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index c4f5b2ec4..b9f097cc4 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -315,15 +315,21 @@ Blockly.blockRendering.Drawer.prototype.layoutField_ = function(fieldInfo) { var yPos = fieldInfo.centerline - fieldInfo.height / 2; var xPos = fieldInfo.xPos; + var scale = ''; if (this.info_.RTL) { xPos = -(xPos + fieldInfo.width); + if (fieldInfo.flipRtl) { + xPos += fieldInfo.width; + scale = 'scale(-1 1)'; + } } if (fieldInfo.type == 'icon') { svgGroup.setAttribute('display', 'block'); svgGroup.setAttribute('transform', 'translate(' + xPos + ',' + yPos + ')'); fieldInfo.icon.computeIconLocation(); } else { - svgGroup.setAttribute('transform', 'translate(' + xPos + ',' + yPos + ')'); + svgGroup.setAttribute( + 'transform', 'translate(' + xPos + ',' + yPos + ')' + scale); } if (this.info_.isInsertionMarker) { diff --git a/core/renderers/block_rendering_rewrite/measurables.js b/core/renderers/block_rendering_rewrite/measurables.js index 7d59ed047..3121a281b 100644 --- a/core/renderers/block_rendering_rewrite/measurables.js +++ b/core/renderers/block_rendering_rewrite/measurables.js @@ -215,6 +215,7 @@ Blockly.blockRendering.Field = function(field, parentInput) { Blockly.blockRendering.Field.superClass_.constructor.call(this); this.field = field; this.isEditable = field.isCurrentlyEditable(); + this.flipRtl = field instanceof Blockly.FieldImage && field.getFlipRtl(); this.type = 'field'; var size = this.field.getSize();