You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Julien Lacour <ju...@sync.ro> on 2022/11/15 09:11:50 UTC

FOP-2860

Hello,

Small question concerning FOP-2860 
<https://issues.apache.org/jira/browse/FOP-2860>: I don't really 
understand the simple-line-breaking fix, why still calling the 
alg.findBreakingPoints() method twice? Is it relevant to do that?

If not, I think it should be better to only call the forced algorithm in 
the simpleLineBreaking case, something like:

    |// now try something different||
    ||log.debug("Hyphenation possible? " + canHyphenate);||
    ||boolean simpleLineBreaking =
    fobj.getUserAgent().isSimpleLineBreaking();||
    ||
    ||if (!simpleLineBreaking) {||
    ||    // Note: if allowedBreaks is guaranteed to be unchanged by
    alg.findBreakingPoints(),||
    ||    // the below check can be simplified to 'if (canHyphenate) ...'||
    ||    if (canHyphenate && allowedBreaks !=
    BreakingAlgorithm.ONLY_FORCED_BREAKS) {||
    ||      // consider every hyphenation point as a legal break||
    ||      allowedBreaks = BreakingAlgorithm.ALL_BREAKS;||
    ||    } else {||
    ||      // try with a higher threshold||
    ||      maxAdjustment = 5;||
    ||    }||
    ||
    ||    breakingPoints = alg.findBreakingPoints(currPar,
    maxAdjustment, false, allowedBreaks);||
    ||    if (breakingPoints == 0) {||
    ||      // the second try failed too, try with a huge threshold||
    ||      // and force the algorithm to find a set of breaking points||
    ||      if (log.isDebugEnabled()) {||
    ||        log.debug("No set of breaking points found with
    maxAdjustment = "||
    ||            + maxAdjustment + (canHyphenate ? " and hyphenation" :
    ""));||
    ||      }||
    ||      maxAdjustment = 20;||
    ||      alg.findBreakingPoints(currPar, maxAdjustment, true,
    allowedBreaks);||
    ||    }||
    ||} else {||
    ||    alg.findBreakingPoints(currPar, maxAdjustment, true,
    allowedBreaks);||
    ||}|

Regards,
Julien