summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2012-04-12 18:21:39 +0300
committerQt by Nokia <qt-info@nokia.com>2012-04-13 10:44:28 +0200
commit9fd2edb6da5f1f6d644cd7c3f35aebe3e88beee2 (patch)
treed644aeef68584469ec1b9b6cdbc3d86cc7ddf86b /src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
parentb317fe2a606e5b79f24b1e4a1b808f5ff66d3621 (diff)
replace hardcoded values with a surrogate handling methods
Change-Id: Ib41e08d835f2e8ca2e32b4025c6f5a99840f2e27 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
index 82410bfb21..9c98144c4c 100644
--- a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
@@ -295,13 +295,14 @@ QFixed QWindowsFontEngineDirectWrite::emSquareSize() const
return QFontEngine::emSquareSize();
}
+// ### Qt 5.1: replace with QStringIterator
inline unsigned int getChar(const QChar *str, int &i, const int len)
{
- unsigned int uc = str[i].unicode();
- if (uc >= 0xd800 && uc < 0xdc00 && i < len-1) {
+ uint uc = str[i].unicode();
+ if (QChar::isHighSurrogate(uc) && i < len-1) {
uint low = str[i+1].unicode();
- if (low >= 0xdc00 && low < 0xe000) {
- uc = (uc - 0xd800)*0x400 + (low - 0xdc00) + 0x10000;
+ if (QChar::isLowSurrogate(low)) {
+ uc = QChar::surrogateToUcs4(uc, low);
++i;
}
}