From 3f64acfe4dd36d0228b1f2228a0e5f720456a5ba Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Tue, 11 Jan 2022 20:24:27 -0800 Subject: [PATCH] Preserve original alt-text for quotes. However, this exposes a more serious issue with Blockly which needs to be adressed first. `getFastTextWidth` fails to honour CSS directives in the label's class. --- blocks/text.js | 10 ++-- media/Blockly.sfd | 128 +++++++++++++++++++++++----------------------- media/Blockly.ttf | Bin 1960 -> 1948 bytes tests/deps.js | 2 +- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/blocks/text.js b/blocks/text.js index 0e5935744..a3b19b1d3 100644 --- a/blocks/text.js +++ b/blocks/text.js @@ -221,7 +221,7 @@ Blocks['text'] = { 'message0': '%1%2%3', 'args0': [{ 'type': 'field_label', - 'text': this.RTL ? '❞' : '❝', + 'text': this.RTL ? '”' : '“', 'class': 'blocklyFont', }, { @@ -231,7 +231,7 @@ Blocks['text'] = { }, { 'type': 'field_label', - 'text': this.RTL ? '❝' : '❞', + 'text': this.RTL ? '“' : '”', 'class': 'blocklyFont', }], 'output': 'String', @@ -524,9 +524,9 @@ Blocks['text_prompt'] = { }); this.appendDummyInput() .appendField(dropdown, 'TYPE') - .appendField(new FieldLabel(this.RTL ? '❞' : '❝', 'blocklyFont')) + .appendField(new FieldLabel(this.RTL ? '”' : '“', 'blocklyFont')) .appendField(new FieldTextInput(''), 'TEXT') - .appendField(new FieldLabel(this.RTL ? '❝' : '❞', 'blocklyFont')); + .appendField(new FieldLabel(this.RTL ? '“' : '”', 'blocklyFont')); this.setOutput(true, 'String'); this.setTooltip(function() { return (thisBlock.getFieldValue('TYPE') === 'TEXT') ? @@ -740,7 +740,7 @@ const TEXT_JOIN_MUTATOR_MIXIN = { this.removeInput('EMPTY'); } else if (!this.itemCount_ && !this.getInput('EMPTY')) { this.appendDummyInput('EMPTY') - .appendField(new FieldLabel('❝❞', 'blocklyFont')); + .appendField(new FieldLabel('“”', 'blocklyFont')); } // Add new inputs. for (let i = 0; i < this.itemCount_; i++) { diff --git a/media/Blockly.sfd b/media/Blockly.sfd index c7c6e3e43..992daecb0 100644 --- a/media/Blockly.sfd +++ b/media/Blockly.sfd @@ -22,7 +22,7 @@ OS2Version: 0 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 1 CreationTime: 1641885434 -ModificationTime: 1641926972 +ModificationTime: 1641935919 OS2TypoAscent: 0 OS2TypoAOffset: 1 OS2TypoDescent: 0 @@ -44,76 +44,16 @@ NameList: AGL For New Fonts DisplaySize: -48 AntiAlias: 1 FitToEm: 0 -WinInfo: 90 18 7 +WinInfo: 8136 18 7 BeginPrivate: 0 EndPrivate BeginChars: 1114112 3 -StartChar: uni275D -Encoding: 10077 10077 0 -Width: 1024 -Flags: HW -LayerCount: 2 -Fore -SplineSet -551 454 m 1 - 575 464 601 468 627 468 c 0 - 724 468 764 406 764 321 c 0 - 764 232 701 174 613 174 c 0 - 475 174 419 270 419 392 c 0 - 419 611 572 727 699 803 c 0 - 708 808 715 810 724 810 c 4 - 785 747 l 4 - 785 734 780 722 768 714 c 0 - 670 645 566 584 551 454 c 1 -133 454 m 1 - 157 464 183 468 208 468 c 0 - 305 468 346 404 346 320 c 0 - 346 231 282 174 195 174 c 0 - 56 174 0 270 0 393 c 0 - 0 611 154 727 281 803 c 0 - 290 808 298 810 307 810 c 0 - 367 747 l 0 - 367 734 363 722 351 714 c 0 - 253 645 148 584 133 454 c 1 -EndSplineSet -EndChar - -StartChar: uni275E -Encoding: 10078 10078 1 -Width: 1024 -Flags: HW -LayerCount: 2 -Fore -SplineSet -235 529 m 1 - 211 519 184 515 159 515 c 0 - 62 515 21 577 21 662 c 0 - 21 751 85 809 172 809 c 0 - 310 809 366 713 366 591 c 0 - 366 372 214 256 87 180 c 0 - 78 175 69 173 61 173 c 4 - 0 236 l 4 - 0 249 5 261 17 269 c 0 - 115 338 220 399 235 529 c 1 -652 529 m 1 - 628 519 602 515 577 515 c 0 - 480 515 439 579 439 663 c 0 - 439 752 503 809 590 809 c 0 - 728 809 785 713 785 590 c 0 - 785 371 631 256 504 180 c 0 - 495 175 487 173 479 173 c 0 - 418 236 l 0 - 418 249 423 261 435 269 c 0 - 533 338 637 399 652 529 c 1 -EndSplineSet -EndChar - StartChar: paragraph -Encoding: 182 182 2 +Encoding: 182 182 0 Width: 1024 VWidth: 2048 -Flags: HWO +Flags: HW LayerCount: 2 Fore SplineSet @@ -135,5 +75,65 @@ SplineSet EndSplineSet Validated: 1 EndChar + +StartChar: quotedblleft +Encoding: 8220 8220 1 +Width: 985 +Flags: HWO +LayerCount: 2 +Fore +SplineSet +651 454 m 1 + 675 464 701 468 727 468 c 0 + 824 468 864 406 864 321 c 0 + 864 232 801 174 713 174 c 0 + 575 174 519 270 519 392 c 0 + 519 611 672 727 799 803 c 0 + 808 808 815 810 824 810 c 0 + 885 747 l 0 + 885 734 880 722 868 714 c 0 + 770 645 666 584 651 454 c 1 +233 454 m 1 + 257 464 283 468 308 468 c 0 + 405 468 446 404 446 320 c 0 + 446 231 382 174 295 174 c 0 + 156 174 100 270 100 393 c 0 + 100 611 254 727 381 803 c 0 + 390 808 398 810 407 810 c 0 + 467 747 l 0 + 467 734 463 722 451 714 c 0 + 353 645 248 584 233 454 c 1 +EndSplineSet +EndChar + +StartChar: quotedblright +Encoding: 8221 8221 2 +Width: 985 +Flags: HW +LayerCount: 2 +Fore +SplineSet +335 529 m 1 + 311 519 284 515 259 515 c 0 + 162 515 121 577 121 662 c 0 + 121 751 185 809 272 809 c 0 + 410 809 466 713 466 591 c 0 + 466 372 314 256 187 180 c 0 + 178 175 169 173 161 173 c 0 + 100 236 l 0 + 100 249 105 261 117 269 c 0 + 215 338 320 399 335 529 c 1 +752 529 m 1 + 728 519 702 515 677 515 c 0 + 580 515 539 579 539 663 c 0 + 539 752 603 809 690 809 c 0 + 828 809 885 713 885 590 c 0 + 885 371 731 256 604 180 c 0 + 595 175 587 173 579 173 c 0 + 518 236 l 0 + 518 249 523 261 535 269 c 0 + 633 338 737 399 752 529 c 1 +EndSplineSet +EndChar EndChars EndSplineFont diff --git a/media/Blockly.ttf b/media/Blockly.ttf index e86f0cc984d09591dfb1e9656381112d743cdf3c..7fede004239d084e1c6f97cc3815ef85e28361c7 100644 GIT binary patch delta 461 zcmXX?ODKd<6#nkL{}?qGc}y0=jLBxaMi!)m1w%>*NhveUZ%mqLrsfeg#zsmOx(kvW z3wh1LBc*I9OB*a03!-MpM)5oUpIhgi`$Y_f3_uam5b$}uqXQdv9h-nT zO;vkucaIn4C?l-ucyPqiJYLIA0Tv?c3q<@e@Aj*eaF(J!kV-h=;wyltCtjKH$77mC zonf9NoIewu558UnF+pQ^U`xh(D zk(4&(C`}rAL-Bu^WFK>J@g~E}QBA|^Ck=4p@qY~kdsHf(J1gZOv)fn-E}daxv^Hh& z02QiyWR1nnO8Nqj(ynRR!1KGT;90Ji%J< l{p6a`z}cX@RH7$!rUEWUc}ZcO?nLvf;1p*vXzt>>nLmm1X7B(2 delta 462 zcmX|7PbkA-7=FI*`|%@xW^4+}SZY>GR!A)zwjU{>IY?n^Go!JU5iYn<4(2;Zxgio# zN)8U(oLn3@%%3|)u72LF@zwjiJ@51MKHu~08IBDrU;v7-3IV^S4fX9jRviNBCQU8f z9GHCsk{NCb_#}n8-T9b&;9GVj*B7d{5XEjRga2 z8eg=aA$e`>Bp3D*kIf}|_7hv=l6LLLB%)N!PR%xMaDSsfp)v5v-*PZ(u6 zvz8e%`ivrbDYA#zxB?kv*4q4khJ$|T?+k>!A%a)-F?q@?rQ|@5q{!I<YpmI&+FR cW74fwniyw7ou8d@wY7M%-781bF1~j23+%UHg8%>k diff --git a/tests/deps.js b/tests/deps.js index 55bfc76b6..71acf5adc 100644 --- a/tests/deps.js +++ b/tests/deps.js @@ -5,7 +5,7 @@ goog.addDependency('../../blocks/logic.js', ['Blockly.blocks.logic'], ['Blockly. goog.addDependency('../../blocks/loops.js', ['Blockly.blocks.loops'], ['Blockly.ContextMenu', 'Blockly.Events', 'Blockly.Extensions', 'Blockly.FieldDropdown', 'Blockly.FieldLabel', 'Blockly.FieldNumber', 'Blockly.FieldVariable', 'Blockly.Msg', 'Blockly.Variables', 'Blockly.Warning', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../blocks/math.js', ['Blockly.blocks.math'], ['Blockly.Extensions', 'Blockly.FieldDropdown', 'Blockly.FieldLabel', 'Blockly.FieldNumber', 'Blockly.FieldVariable', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../blocks/procedures.js', ['Blockly.blocks.procedures'], ['Blockly.Comment', 'Blockly.ContextMenu', 'Blockly.Events', 'Blockly.FieldCheckbox', 'Blockly.FieldLabel', 'Blockly.FieldTextInput', 'Blockly.Input', 'Blockly.Msg', 'Blockly.Mutator', 'Blockly.Names', 'Blockly.Procedures', 'Blockly.Variables', 'Blockly.Warning', 'Blockly.Xml', 'Blockly.blocks', 'Blockly.internalConstants', 'Blockly.utils.xml'], {'lang': 'es9', 'module': 'goog'}); -goog.addDependency('../../blocks/text.js', ['Blockly.blocks.texts'], ['Blockly.ConnectionType', 'Blockly.Extensions', 'Blockly.FieldDropdown', 'Blockly.FieldImage', 'Blockly.FieldMultilineInput', 'Blockly.FieldTextInput', 'Blockly.FieldVariable', 'Blockly.Input', 'Blockly.Msg', 'Blockly.Mutator', 'Blockly.blocks', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es9', 'module': 'goog'}); +goog.addDependency('../../blocks/text.js', ['Blockly.blocks.texts'], ['Blockly.ConnectionType', 'Blockly.Extensions', 'Blockly.FieldDropdown', 'Blockly.FieldLabel', 'Blockly.FieldMultilineInput', 'Blockly.FieldTextInput', 'Blockly.FieldVariable', 'Blockly.Input', 'Blockly.Msg', 'Blockly.Mutator', 'Blockly.blocks', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es9', 'module': 'goog'}); goog.addDependency('../../blocks/variables.js', ['Blockly.blocks.variables'], ['Blockly.ContextMenu', 'Blockly.Extensions', 'Blockly.FieldLabel', 'Blockly.FieldVariable', 'Blockly.Msg', 'Blockly.Variables', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../blocks/variables_dynamic.js', ['Blockly.blocks.variablesDynamic'], ['Blockly.ContextMenu', 'Blockly.Extensions', 'Blockly.FieldLabel', 'Blockly.FieldVariable', 'Blockly.Msg', 'Blockly.Variables', 'Blockly.common', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/block.js', ['Blockly.Block'], ['Blockly.ASTNode', 'Blockly.Connection', 'Blockly.ConnectionType', 'Blockly.Events.BlockChange', 'Blockly.Events.BlockCreate', 'Blockly.Events.BlockDelete', 'Blockly.Events.BlockMove', 'Blockly.Events.utils', 'Blockly.Extensions', 'Blockly.IASTNodeLocation', 'Blockly.IDeletable', 'Blockly.Input', 'Blockly.Tooltip', 'Blockly.blocks', 'Blockly.common', 'Blockly.constants', 'Blockly.fieldRegistry', 'Blockly.inputTypes', 'Blockly.utils.Coordinate', 'Blockly.utils.Size', 'Blockly.utils.array', 'Blockly.utils.idGenerator', 'Blockly.utils.object', 'Blockly.utils.parsing'], {'lang': 'es6', 'module': 'goog'});