[Libreoffice-commits] core.git: vcl/source
Martin Hosken
martin_hosken at sil.org
Sat Feb 13 02:32:49 UTC 2016
vcl/source/glyphs/graphite_layout.cxx | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
New commits:
commit f2df80410b34faa88740f2c0c2b021c74a19d5ca
Author: Martin Hosken <martin_hosken at sil.org>
Date: Thu Feb 11 14:05:55 2016 +0700
Fix graphite line final diacritics
Change-Id: If5175fd489e835dbf9d37a45fd266c6ce44eae1a
Reviewed-on: https://gerrit.libreoffice.org/22280
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Martin Hosken <martin_hosken at sil.org>
diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx
index 2405967..2038a24 100644
--- a/vcl/source/glyphs/graphite_layout.cxx
+++ b/vcl/source/glyphs/graphite_layout.cxx
@@ -676,12 +676,16 @@ unsigned int GraphiteLayout::ScanFwdForChar(int &findChar, bool fallback) const
for (++findChar; findChar - mnMinCharPos < int(mvChar2Glyph.size()); ++findChar)
if ((res = mvChar2Glyph[findChar - mnMinCharPos]) != -1)
return res;
+ --findChar;
+ return mvGlyphs.size() - 1;
}
else
{
for (--findChar; findChar >= mnMinCharPos; --findChar)
if ((res = mvChar2Glyph[findChar - mnMinCharPos]) != -1)
return res;
+ ++findChar;
+ return 0;
}
fallback = !fallback;
}
@@ -693,8 +697,8 @@ void GraphiteLayout::ApplyDXArray(ImplLayoutArgs &args, std::vector<int> & rDelt
bool bRtl(mnLayoutFlags & SalLayoutFlags::BiDiRtl);
int startChar = args.mnMinCharPos < mnMinCharPos ? mnMinCharPos : args.mnMinCharPos;
int endChar = args.mnEndCharPos >= mnEndCharPos ? mnEndCharPos - 1 : args.mnEndCharPos;
- unsigned int startGi = ScanFwdForChar(startChar, !bRtl);
- unsigned int endGi = ScanFwdForChar(endChar, bRtl);
+ unsigned int startGi = ScanFwdForChar(startChar, bRtl);
+ unsigned int endGi = ScanFwdForChar(endChar, !bRtl);
int nChars = endChar - startChar + 1;
if (nChars <= 0) return;
if (startGi > endGi)
More information about the Libreoffice-commits
mailing list