[Libreoffice-commits] core.git: Branch 'feature/commonsallayout' - vcl/source
Khaled Hosny
khaledhosny at eglug.org
Sun Oct 9 23:37:50 UTC 2016
vcl/source/gdi/CommonSalLayout.cxx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
New commits:
commit 7710affe4b15fd6ba6f79a69fa2521e08881e23f
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Mon Oct 10 01:36:45 2016 +0200
Just call ICU directly and cut the middle layers
Change-Id: I7603d03fef8ca227c3e6fe25239281d18801522a
diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx
index 0bbab99..7de1a80 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -25,6 +25,7 @@
#include <i18nlangtag/mslangid.hxx>
#include <limits>
#include <salgdi.hxx>
+#include <unicode/uchar.h>
#if defined(_WIN32)
struct WinSalGraphicsWithIDFace
@@ -116,14 +117,14 @@ static void scaleHbFont(hb_font_t* pHbFont, const FontSelectPattern& aFontSelDat
hb_font_set_scale(pHbFont, nXScale, nYScale);
}
+#if !HB_VERSION_ATLEAST(1, 1, 0)
static hb_unicode_funcs_t* getUnicodeFuncs()
{
static hb_unicode_funcs_t* ufuncs = hb_unicode_funcs_create(hb_icu_get_unicode_funcs());
-#if !HB_VERSION_ATLEAST(1, 1, 0)
hb_unicode_funcs_set_decompose_compatibility_func(ufuncs, unicodeDecomposeCompatibility, nullptr, nullptr);
-#endif
return ufuncs;
}
+#endif
#if defined(_WIN32)
CommonSalLayout::CommonSalLayout(WinSalGraphics* WSL, WinFontInstance& rWinFontInstance, const WinFontFace& rWinFontFace)
@@ -389,8 +390,8 @@ bool CommonSalLayout::LayoutText(ImplLayoutArgs& rArgs)
nHbFlags |= HB_BUFFER_FLAG_EOT; /* End-of-text */
hb_buffer_t *pHbBuffer = hb_buffer_create();
- static hb_unicode_funcs_t* pHbUnicodeFuncs = getUnicodeFuncs();
#if !HB_VERSION_ATLEAST(1, 1, 0)
+ static hb_unicode_funcs_t* pHbUnicodeFuncs = getUnicodeFuncs();
hb_buffer_set_unicode_funcs(pHbBuffer, pHbUnicodeFuncs);
#endif
if (SAL_UNLIKELY(bVertical))
@@ -449,7 +450,7 @@ bool CommonSalLayout::LayoutText(ImplLayoutArgs& rArgs)
else
{
#if HB_VERSION_ATLEAST(0, 9, 42)
- if(hb_unicode_general_category (pHbUnicodeFuncs, aChar) == HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)
+ if (u_getIntPropertyValue(aChar, UCHAR_GENERAL_CATEGORY) == U_NON_SPACING_MARK)
bDiacritic = true;
#else
// the font lacks GDEF table
@@ -585,8 +586,7 @@ void CommonSalLayout::ApplyDXArray(ImplLayoutArgs& rArgs)
sal_Int32 indexUtf16 = pGlyphIter->mnCharPos;
sal_UCS4 aChar = rArgs.mrStr.iterateCodePoints(&indexUtf16, 0);
- static hb_unicode_funcs_t* pHbUnicodeFuncs = getUnicodeFuncs();
- if (hb_unicode_general_category (pHbUnicodeFuncs, aChar) == HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR)
+ if (u_isUWhiteSpace(aChar))
continue;
DeviceCoordinate nGapWidth = pKashida.second;
More information about the Libreoffice-commits
mailing list