From 58b690728dde330c47141ace9bb38fcb71f13f6a Mon Sep 17 00:00:00 2001 From: Sam El-Husseini Date: Wed, 22 Jan 2020 11:07:59 -0800 Subject: [PATCH] Fix rtl placement of arrow in non-borderbox dropdown fields (#3629) --- core/field_dropdown.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/field_dropdown.js b/core/field_dropdown.js index 32b1beb78..4a42c3429 100644 --- a/core/field_dropdown.js +++ b/core/field_dropdown.js @@ -288,8 +288,10 @@ Blockly.FieldDropdown.prototype.showEditor_ = function(opt_e) { var primaryColour = (this.sourceBlock_.isShadow()) ? this.sourceBlock_.getParent().getColour() : this.sourceBlock_.getColour(); - Blockly.DropDownDiv.setColour(primaryColour, - this.sourceBlock_.style.colourTertiary); + var borderColour = (this.sourceBlock_.isShadow()) ? + this.sourceBlock_.getParent().style.colourTertiary : + this.sourceBlock_.style.colourTertiary; + Blockly.DropDownDiv.setColour(primaryColour, borderColour); } Blockly.DropDownDiv.showPositionedByField( @@ -680,12 +682,14 @@ Blockly.FieldDropdown.prototype.positionSVGArrow_ = function(x, y) { if (!this.svgArrow_) { return 0; } - var padding = this.constants_.FIELD_DROPDOWN_SVG_ARROW_PADDING; + var hasBorder = !!this.borderRect_; + var xPadding = hasBorder ? this.constants_.FIELD_BORDER_RECT_X_PADDING : 0; + var textPadding = this.constants_.FIELD_DROPDOWN_SVG_ARROW_PADDING; var svgArrowSize = this.constants_.FIELD_DROPDOWN_SVG_ARROW_SIZE; - var arrowX = this.sourceBlock_.RTL ? padding : x + padding; + var arrowX = this.sourceBlock_.RTL ? xPadding : x + textPadding; this.svgArrow_.setAttribute('transform', 'translate(' + arrowX + ',' + y + ')'); - return svgArrowSize + padding; + return svgArrowSize + textPadding; }; /**