Apache OpenOffice (AOO) Bugzilla – Issue 92342
Aqua: Hyphenation does not work
Last modified: 2013-08-07 14:43:03 UTC
SBA->TL: As discussed, in DEV300m28 and m29, neither in Writer nor in Calc. To reproduce: - New Writer doc - Insert dummy text - Tools-Language-Hyphenation -> Dialog "Restart from the beginning?" comes up - Click OK -> Message box "Hyphenation completed" comes up Expected: Dialog with hyphenation proposals. Note: Format-Paragraph-Tab text flow -> Auto-Hyphenation has no effect either. Spelling and Thesaurus work.
can confirm on PPC (Tiger). Hyphenation works in 2.4.1 (X11 version)
Seems to be an aqua-only problem. Works with DEV300_m23 (X11), doesn't work with DEV300_m23 (aqua) - both on Mac OSX 10.4/PPC
SBA: Put msicotte on CC.
TL: As suggested adding Eric to cc.
TL: The first obvious thing is that no hyphenator is called at all. Debugging further we reach i18npool's BreakIterator_Unicode::getLineBreak and that function seems to be called with reasonable values. But that function is never calling the hOptions.rHyphenator->hyphenate(...) as it is supposed to do. The reason is that line.aBreakIterator->isBoundary(nStartPos) returns true and thus always the incorrect branch of the if-statement is called. Maybe an ICU problem in the Aqua port? Need to check first if the parameters I saw passed to that function under Aqua look similar to the ones from a working version.
TL: It turns out the problem is not with the i18npool's breakiterator. The breakiterator function gets called with incorrect arguments after all. The reason for this is that in SwFont::GetTxtBreak the line nTxtBreak = rInf.GetOut().GetTextBreak(...) calls OutputDevice::GetTextBreak and that function returns incorrect values when used in Aqua.
.
ATSUBreakLine() tries to be too smart... how to dumb it down to return the logical codepoint where the visual line break would happen?
reminder: why doesn't kATSLineBreakToNearestCharacter work as advertised? On OSX 10.5 ATSUBreakLine () only seems to do it (resulting in kATSULineBreakInWord) when a word exceeds the width of the whole line.
Fixed in CWS vcl30stop3: a fast ASTUI based emulation of a naive GetTextBreak() is not trivial
please verify in CWS vcl30stop3
Verified in CWS vcl30stop3.
Checked fix in OOO300m2.
*** Issue 89220 has been marked as a duplicate of this issue. ***