From 7e7d7062012856b10b8b043a572a25628d0cf36d Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Sat, 25 May 2019 16:24:20 -0700 Subject: [PATCH 1/5] Fixed angle offset property. --- core/field_angle.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/field_angle.js b/core/field_angle.js index cd1138aec..de6f2c7f2 100644 --- a/core/field_angle.js +++ b/core/field_angle.js @@ -267,7 +267,10 @@ Blockly.FieldAngle.prototype.onMouseMove = function(e) { if (Blockly.FieldAngle.CLOCKWISE) { angle = Blockly.FieldAngle.OFFSET + 360 - angle; } else { - angle -= Blockly.FieldAngle.OFFSET; + angle = 360 - (Blockly.FieldAngle.OFFSET - angle); + } + if (angle > 360) { + angle -= 360; } if (Blockly.FieldAngle.ROUND) { angle = Math.round(angle / Blockly.FieldAngle.ROUND) * From 378fbfd87992eeebd9630f1ac77269b161f813e8 Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Sat, 25 May 2019 16:51:42 -0700 Subject: [PATCH 2/5] Fixed wrap not displaying the correct text. --- core/field_angle.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/field_angle.js b/core/field_angle.js index de6f2c7f2..df1d6252a 100644 --- a/core/field_angle.js +++ b/core/field_angle.js @@ -264,6 +264,8 @@ Blockly.FieldAngle.prototype.onMouseMove = function(e) { } else if (dy > 0) { angle += 360; } + + // Do offsetting. if (Blockly.FieldAngle.CLOCKWISE) { angle = Blockly.FieldAngle.OFFSET + 360 - angle; } else { @@ -272,11 +274,18 @@ Blockly.FieldAngle.prototype.onMouseMove = function(e) { if (angle > 360) { angle -= 360; } + + // Do rounding. if (Blockly.FieldAngle.ROUND) { angle = Math.round(angle / Blockly.FieldAngle.ROUND) * Blockly.FieldAngle.ROUND; } + // Do wrapping. + if (angle > Blockly.FieldAngle.WRAP) { + angle -= 360; + } + // Update value. var angleString = String(angle); if (angleString != this.text_) { From bace90e538cb4a4d1cf6d09a1b4045c89600d304 Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Sat, 25 May 2019 16:58:38 -0700 Subject: [PATCH 3/5] Fixed gauge breaking at high angle values. --- core/field_angle.js | 1 + 1 file changed, 1 insertion(+) diff --git a/core/field_angle.js b/core/field_angle.js index df1d6252a..0e6f05be5 100644 --- a/core/field_angle.js +++ b/core/field_angle.js @@ -307,6 +307,7 @@ Blockly.FieldAngle.prototype.updateGraph_ = function() { } // Always display the input (i.e. getText) even if it is invalid. var angleDegrees = Number(this.getText()) + Blockly.FieldAngle.OFFSET; + angleDegrees = angleDegrees % 360; var angleRadians = Blockly.utils.toRadians(angleDegrees); var path = ['M ', Blockly.FieldAngle.HALF, ',', Blockly.FieldAngle.HALF]; var x2 = Blockly.FieldAngle.HALF; From 38f437a87e174e75ed106dc78bbc48cf16c9b846 Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Sat, 25 May 2019 17:36:27 -0700 Subject: [PATCH 4/5] Fixed angle fields not displaying 0 when given an empty string. --- core/field_textinput.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/field_textinput.js b/core/field_textinput.js index 068a5ecc4..7e3e8e65f 100644 --- a/core/field_textinput.js +++ b/core/field_textinput.js @@ -396,7 +396,7 @@ Blockly.FieldTextInput.prototype.widgetDispose_ = function() { thisField.isBeingEdited_ = false; // No need to call setValue because if the widget is being closed the // latest input text has already been validated. - if (thisField.value_ != thisField.text_) { + if (thisField.value_ !== thisField.text_) { // At the end of an edit the text should be the same as the value. It // may not be if the input text is different than the validated text. // We should fix that. From 00619316868363c1ef1bbd541ca1102383a1d79c Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Mon, 27 May 2019 07:41:01 -0700 Subject: [PATCH 5/5] Change applicable locations to use the modulo assignment operator. --- core/field_angle.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/field_angle.js b/core/field_angle.js index 0e6f05be5..7f521ec9d 100644 --- a/core/field_angle.js +++ b/core/field_angle.js @@ -307,7 +307,7 @@ Blockly.FieldAngle.prototype.updateGraph_ = function() { } // Always display the input (i.e. getText) even if it is invalid. var angleDegrees = Number(this.getText()) + Blockly.FieldAngle.OFFSET; - angleDegrees = angleDegrees % 360; + angleDegrees %= 360; var angleRadians = Blockly.utils.toRadians(angleDegrees); var path = ['M ', Blockly.FieldAngle.HALF, ',', Blockly.FieldAngle.HALF]; var x2 = Blockly.FieldAngle.HALF; @@ -347,7 +347,7 @@ Blockly.FieldAngle.prototype.doClassValidation_ = function(newValue) { return null; } var n = parseFloat(newValue || 0); - n = n % 360; + n %= 360; if (n < 0) { n += 360; }