summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@qt.io>2017-09-02 10:27:08 +0200
committerFrederik Gladhorn <frederik.gladhorn@qt.io>2017-09-02 10:27:09 +0200
commit9831118378c5d489f76089011277a1b7234a8d68 (patch)
treea67e82fde179fa727172fff9098758d60912189d /src/platformsupport
parentb5d471d0c23128528a0aa33ed5172bb1bab05bb1 (diff)
parent4fa90c1757c15425d5e0df1a4f5dbc7e77c265f8 (diff)
Merge dev into 5.10
Diffstat (limited to 'src/platformsupport')
-rw-r--r--src/platformsupport/fbconvenience/qfbvthandler.cpp1
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm45
-rw-r--r--src/platformsupport/fontdatabases/winrt/winrt.pri2
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp4
4 files changed, 29 insertions, 23 deletions
diff --git a/src/platformsupport/fbconvenience/qfbvthandler.cpp b/src/platformsupport/fbconvenience/qfbvthandler.cpp
index 102bc91647..7bb9e28ac2 100644
--- a/src/platformsupport/fbconvenience/qfbvthandler.cpp
+++ b/src/platformsupport/fbconvenience/qfbvthandler.cpp
@@ -50,7 +50,6 @@
#include <signal.h>
#include <errno.h>
#include <fcntl.h>
-#include <sys/signalfd.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
index 49a6049c4b..66baf162d9 100644
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
@@ -112,25 +112,32 @@ bool QCoreTextFontEngine::ct_getSfntTable(void *user_data, uint tag, uchar *buff
QFont::Weight QCoreTextFontEngine::qtWeightFromCFWeight(float value)
{
- if (value >= kCTFontWeightBlack)
- return QFont::Black;
- if (value >= kCTFontWeightHeavy)
- return QFont::ExtraBold;
- if (value >= kCTFontWeightBold)
- return QFont::Bold;
- if (value >= kCTFontWeightSemibold)
- return QFont::DemiBold;
- if (value >= kCTFontWeightMedium)
- return QFont::Medium;
- if (value == kCTFontWeightRegular)
- return QFont::Normal;
- if (value <= kCTFontWeightUltraLight)
- return QFont::Thin;
- if (value <= kCTFontWeightThin)
- return QFont::ExtraLight;
- if (value <= kCTFontWeightLight)
- return QFont::Light;
- return QFont::Normal;
+#define COMPARE_WEIGHT_DISTANCE(ct_weight, qt_weight) \
+ { \
+ float d; \
+ if ((d = qAbs(value - ct_weight)) < distance) { \
+ distance = d; \
+ ret = qt_weight; \
+ } \
+ }
+
+ float distance = qAbs(value - kCTFontWeightBlack);
+ QFont::Weight ret = QFont::Black;
+
+ // Compare distance to system weight to find the closest match.
+ // (Note: Must go from high to low, so that midpoints are rounded up)
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightHeavy, QFont::ExtraBold);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightBold, QFont::Bold);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightSemibold, QFont::DemiBold);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightMedium, QFont::Medium);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightRegular, QFont::Normal);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightLight, QFont::Light);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightThin, QFont::ExtraLight);
+ COMPARE_WEIGHT_DISTANCE(kCTFontWeightUltraLight, QFont::Thin);
+
+#undef COMPARE_WEIGHT_DISTANCE
+
+ return ret;
}
static void loadAdvancesForGlyphs(CTFontRef ctfont,
diff --git a/src/platformsupport/fontdatabases/winrt/winrt.pri b/src/platformsupport/fontdatabases/winrt/winrt.pri
index 4875338182..291ada220f 100644
--- a/src/platformsupport/fontdatabases/winrt/winrt.pri
+++ b/src/platformsupport/fontdatabases/winrt/winrt.pri
@@ -8,4 +8,4 @@ HEADERS += \
DEFINES += __WRL_NO_DEFAULT_LIB__
-LIBS += $$QMAKE_LIBS_CORE -ldwrite
+LIBS += -lws2_32 -ldwrite
diff --git a/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
index dbaaf524e8..b24491b187 100644
--- a/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
+++ b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the plugins of the Qt Toolkit.
@@ -101,7 +101,7 @@ QOpenGLCompositorBackingStore::~QOpenGLCompositorBackingStore()
ctx->makeCurrent(tempSurface.data());
}
- if (ctx && m_bsTextureContext && ctx->shareGroup() == m_bsTextureContext->shareGroup())
+ if (m_bsTextureContext && ctx->shareGroup() == m_bsTextureContext->shareGroup())
glDeleteTextures(1, &m_bsTexture);
else
qWarning("QOpenGLCompositorBackingStore: Texture is not valid in the current context");