From d4b12343d6bc778c76643926ab6b28959d327ae6 Mon Sep 17 00:00:00 2001 From: kozbial Date: Tue, 6 Aug 2019 14:39:38 -0700 Subject: [PATCH 1/3] Adding logic to flip FieldImages in RTL with flipRtl flag set. --- .../block_rendering_rewrite/block_render_draw.js | 11 +++++++++-- core/renderers/block_rendering_rewrite/measurables.js | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index c4f5b2ec4..c68272521 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -315,15 +315,22 @@ 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 + ')'); + svgGroup.setAttribute( + 'transform','translate(' + xPos + ',' + yPos + ')' + scale); 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(); From 11813c706c7d1285333d8548bfef9a6b41894a3e Mon Sep 17 00:00:00 2001 From: kozbial Date: Wed, 7 Aug 2019 12:20:15 -0700 Subject: [PATCH 2/3] Remove flipRtl path for icon. --- core/renderers/block_rendering_rewrite/block_render_draw.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/renderers/block_rendering_rewrite/block_render_draw.js b/core/renderers/block_rendering_rewrite/block_render_draw.js index c68272521..6cc3ef3f9 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -325,8 +325,7 @@ Blockly.blockRendering.Drawer.prototype.layoutField_ = function(fieldInfo) { } if (fieldInfo.type == 'icon') { svgGroup.setAttribute('display', 'block'); - svgGroup.setAttribute( - 'transform','translate(' + xPos + ',' + yPos + ')' + scale); + svgGroup.setAttribute('transform','translate(' + xPos + ',' + yPos + ')'); fieldInfo.icon.computeIconLocation(); } else { svgGroup.setAttribute( From a47177af280bce2b979138c08b10bca8838d5d97 Mon Sep 17 00:00:00 2001 From: kozbial Date: Wed, 7 Aug 2019 12:24:09 -0700 Subject: [PATCH 3/3] fixing spacing --- core/renderers/block_rendering_rewrite/block_render_draw.js | 2 +- 1 file changed, 1 insertion(+), 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 6cc3ef3f9..b9f097cc4 100644 --- a/core/renderers/block_rendering_rewrite/block_render_draw.js +++ b/core/renderers/block_rendering_rewrite/block_render_draw.js @@ -325,7 +325,7 @@ Blockly.blockRendering.Drawer.prototype.layoutField_ = function(fieldInfo) { } if (fieldInfo.type == 'icon') { svgGroup.setAttribute('display', 'block'); - svgGroup.setAttribute('transform','translate(' + xPos + ',' + yPos + ')'); + svgGroup.setAttribute('transform', 'translate(' + xPos + ',' + yPos + ')'); fieldInfo.icon.computeIconLocation(); } else { svgGroup.setAttribute(