diff --git a/lib/Epub/Epub/ParsedText.cpp b/lib/Epub/Epub/ParsedText.cpp index 5e3f298..6ae1896 100644 --- a/lib/Epub/Epub/ParsedText.cpp +++ b/lib/Epub/Epub/ParsedText.cpp @@ -99,7 +99,8 @@ std::vector ParsedText::calculateWordWidths(const GfxRenderer& rendere uint16_t width = measureWordWidth(renderer, fontId, *wordsIt, *wordStylesIt); // Add CSS text-indent to first word width - if (isFirst && blockStyle.textIndent > 0 && shouldIndent) { + if (isFirst && blockStyle.textIndent > 0 && (style == TextBlock::JUSTIFIED || style == TextBlock::LEFT_ALIGN) && + !extraParagraphSpacing) { width += static_cast(blockStyle.textIndent); isFirst = false; } else { diff --git a/lib/Epub/Epub/ParsedText.h b/lib/Epub/Epub/ParsedText.h index fcc797a..cc2596c 100644 --- a/lib/Epub/Epub/ParsedText.h +++ b/lib/Epub/Epub/ParsedText.h @@ -36,9 +36,11 @@ class ParsedText { public: explicit ParsedText(const TextBlock::Style style, const bool extraParagraphSpacing, - const bool hyphenationEnabled = false, - const BlockStyle& blockStyle = BlockStyle())) - : style(style), extraParagraphSpacing(extraParagraphSpacing), hyphenationEnabled(hyphenationEnabled, blockStyle(blockStyle)) {} + const bool hyphenationEnabled = false, const BlockStyle& blockStyle = BlockStyle()) + : style(style), + blockStyle(blockStyle), + extraParagraphSpacing(extraParagraphSpacing), + hyphenationEnabled(hyphenationEnabled) {} ~ParsedText() = default; void addWord(std::string word, EpdFontFamily::Style fontStyle, bool underline = false);