diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index a2f31e9e1..f3bd19e9f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -404,6 +404,10 @@ public class Configuration { @ConfigurationCategory("import") public static final ConfigurationItem textImportResizeTextBoundsMode = null; + @ConfigurationDefaultBoolean(false) + @ConfigurationCategory("import") + public static final ConfigurationItem resetLetterSpacingOnTextImport = null; + @ConfigurationDefaultBoolean(true) @ConfigurationName("warning.experimental.as12edit") @ConfigurationCategory("script") diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/TextImporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/TextImporter.java index 2532605f7..e45163425 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/TextImporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/TextImporter.java @@ -72,12 +72,13 @@ public class TextImporter { public void importTextsSingleFile(File textsFile, SWF swf) { String texts = Helper.readTextFile(textsFile.getPath()); Map records = splitTextRecords(texts); + boolean ignoreLetterSpacing = Configuration.resetLetterSpacingOnTextImport.get(); if (records != null) { for (int characterId : records.keySet()) { TextTag textTag = swf.getText(characterId); if (textTag != null) { String[] currentRecords = records.get(characterId); - String text = textTag.getFormattedText(false).text; + String text = textTag.getFormattedText(ignoreLetterSpacing).text; if (!saveText(textTag, text, currentRecords)) { return; } @@ -132,10 +133,11 @@ public class TextImporter { public boolean importText(TextTag textTag, String newText) { String recordSeparator = Helper.newLine + Configuration.textExportSingleFileRecordSeparator.get() + Helper.newLine; boolean formatted = !newText.contains(recordSeparator) && newText.startsWith("[" + Helper.newLine); + boolean ignoreLetterSpacing = Configuration.resetLetterSpacingOnTextImport.get(); if (!formatted) { String[] records = newText.split(recordSeparator); if (textTag != null) { - String text = textTag.getFormattedText(false).text; + String text = textTag.getFormattedText(ignoreLetterSpacing).text; if (!saveText(textTag, text, records)) { return false; } @@ -159,7 +161,7 @@ public class TextImporter { * @param texts * @return If false the processing should be interrupted */ - public boolean saveText(TextTag textTag, String formattedText, String[] texts) { + private boolean saveText(TextTag textTag, String formattedText, String[] texts) { try { if (textTag.setFormattedText(missingCharacterHandler, formattedText, texts)) { return true; diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties index 6887cef54..eee047f7c 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties @@ -429,3 +429,6 @@ config.description.handleSkinPartsAutomatically = Decompiles and direct edits [S config.name.simplifyExpressions = Simplify expressions config.description.simplifyExpressions = Evaluate and simplify expressions to make code more readable + +config.name.resetLetterSpacingOnTextImport = Reset Letter Spacing on text import +config.description.resetLetterSpacingOnTextImport = Useful for cyrillic fonts, because they are wider