r23685 by jghali - #16100: No line wrap between a CJK character and a Latin character (after a CJK)
scribus-commit
scribus-commit at lists.scribus.net
Sun May 3 21:35:58 UTC 2020
Author: jghali
Date: Sun May 3 21:35:58 2020
New Revision: 23685
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23685
Log:
#16100: No line wrap between a CJK character and a Latin character (after a CJK)
Modified:
trunk/Scribus/scribus/pageitem_textframe.cpp
Modified: trunk/Scribus/scribus/pageitem_textframe.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23685&path=/trunk/Scribus/scribus/pageitem_textframe.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_textframe.cpp (original)
+++ trunk/Scribus/scribus/pageitem_textframe.cpp Sun May 3 21:35:58 2020
@@ -2170,8 +2170,10 @@
const GlyphCluster& nextCluster = glyphClusters[i + 1];
if (nextCluster.hasFlag(ScLayout_LineBoundary))
{
- if (!current.glyphs[currentIndex].hasFlag(ScLayout_LineBoundary)
- && !current.glyphs[currentIndex].hasFlag(ScLayout_HyphenationPossible)
+ // #16100: why preventing possible line break when there are two
+ // consecutive line break opportunities? This is bad for CJK. /
+ if (/*!current.glyphs[currentIndex].hasFlag(ScLayout_LineBoundary)
+ &&*/ !current.glyphs[currentIndex].hasFlag(ScLayout_HyphenationPossible)
&& (itemText.text(a) != '-')
&& (itemText.text(a) != SpecialChars::SHYPHEN))
{
@@ -2415,11 +2417,13 @@
if ((itemText.text(a) == SpecialChars::COLBREAK) && (m_columns > 1))
goNextColumn = true;
- if (i != 0 && implicitBreak(itemText.text(glyphClusters[i - 1].lastChar()), itemText.text(current.glyphs[currentIndex].firstChar())))
+ // #16100: this block is useless now that we allow remembering break in case of consecutive line break opportunities
+ // Anyway this block has a bug : it potentially remember break for a lower indice than upper code
+ /*if (i != 0 && implicitBreak(itemText.text(glyphClusters[i - 1].lastChar()), itemText.text(current.glyphs[currentIndex].firstChar())))
{
// qDebug() << "rememberBreak implicitbreak @" << i-1;
current.rememberBreak(i - 1, breakPos);
- }
+ }*/
current.isEmpty = (i - current.lineData.firstCluster + 1) == 0;
if (tabs.active)
More information about the scribus-commit
mailing list