From bbf33e461c79ea5d56fbf3c83ff4c1f2a2696ee5 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Thu, 12 Feb 2015 17:53:47 +0100 Subject: [PATCH] Dynamic text: new line/paragraph rendering fixed --- .../flash/tags/DefineEditTextTag.java | 21 ++++++++++++------- .../tags/dynamictext/DynamicTextModel.java | 5 +++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java index 9ed84f982..0a721cad4 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java @@ -883,10 +883,8 @@ public class DefineEditTextTag extends TextTag { lastWasWhiteSpace = true; } } else { - if (c == '\r' || prevChar != '\r') { - if (multiline) { - textModel.newParagraph(); - } + if (multiline) { + textModel.newParagraph(); } } prevChar = c; @@ -950,14 +948,21 @@ public class DefineEditTextTag extends TextTag { textModel.calculateTextWidths(); List allTextRecords = new ArrayList<>(); + int lastHeight = 0; int yOffset = 0; for (List line : lines) { int width = 0; int currentOffset = 0; - for (SameStyleTextRecord tr : line) { - width += tr.width; - if (tr.style.fontHeight + tr.style.fontLeading > currentOffset) { - currentOffset = tr.style.fontHeight + tr.style.fontLeading; + if (line.isEmpty()) { + currentOffset = lastHeight; + } else { + for (SameStyleTextRecord tr : line) { + width += tr.width; + int lineHeight = tr.style.fontHeight + tr.style.fontLeading; + lastHeight = lineHeight; + if (lineHeight > currentOffset) { + currentOffset = lineHeight; + } } } yOffset += currentOffset; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/dynamictext/DynamicTextModel.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/dynamictext/DynamicTextModel.java index 46e12edb3..c3b8ed92e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/dynamictext/DynamicTextModel.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/dynamictext/DynamicTextModel.java @@ -50,6 +50,11 @@ public class DynamicTextModel { public void newParagraph() { + if (paragraph == null) { + // add empty paragraph + paragraph = new Paragraph(this); + paragraphs.add(paragraph); + } paragraph = null; }