mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-06 15:47:39 +03:00
improve explicit hyphen breaking logic
This commit is contained in:
parent
7e541b9f3b
commit
8580277131
@ -179,11 +179,13 @@ std::vector<size_t> ParsedText::computeHyphenatedLineBreaks(const GfxRenderer& r
|
||||
|
||||
// Word would overflow — try to split based on hyphenation points
|
||||
const int availableWidth = pageWidth - lineWidth - spacing;
|
||||
const bool allowFallbackBreaks = isFirstWord; // Permit soft hyphen tokens only when first word still overflows
|
||||
const bool allowFallbackBreaks = isFirstWord; // Permit fallback breaks only when first word one the line still overflows
|
||||
if (availableWidth > 0 &&
|
||||
hyphenateWordAtIndex(currentIndex, availableWidth, renderer, fontId, wordWidths, allowFallbackBreaks)) {
|
||||
// widths vector updated for split prefix; re-evaluate same index
|
||||
continue;
|
||||
// Prefix now fits; append it to this line and immediately move to the next line
|
||||
lineWidth += spacing + wordWidths[currentIndex];
|
||||
currentIndex += 1;
|
||||
break;
|
||||
}
|
||||
|
||||
// Could not split: force at least one word per line to avoid infinite loop
|
||||
|
||||
Loading…
Reference in New Issue
Block a user