Hello community, here is the log from the commit of package libqt5-qtdeclarative for openSUSE:Leap:15.2 checked in at 2020-05-12 11:32:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/libqt5-qtdeclarative (Old) and /work/SRC/openSUSE:Leap:15.2/.libqt5-qtdeclarative.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtdeclarative" Tue May 12 11:32:01 2020 rev:32 rq:801867 version:5.12.7 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/libqt5-qtdeclarative/libqt5-qtdeclarative.changes 2020-02-10 16:40:58.707683239 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.libqt5-qtdeclarative.new.2738/libqt5-qtdeclarative.changes 2020-05-12 11:32:13.167721564 +0200 @@ -1,0 +2,6 @@ +Tue May 5 11:16:16 UTC 2020 - Fabian Vogt <fv...@suse.com> + +- Add patch to fix kerning with certain labels (QTBUG-49646): + * fix-subpixel-positioned-text.patch + +------------------------------------------------------------------- New: ---- fix-subpixel-positioned-text.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtdeclarative.spec ++++++ --- /var/tmp/diff_new_pack.wXyWLr/_old 2020-05-12 11:32:13.695722673 +0200 +++ /var/tmp/diff_new_pack.wXyWLr/_new 2020-05-12 11:32:13.699722681 +0200 @@ -33,6 +33,8 @@ %define tar_version qtdeclarative-everywhere-src-5.12.7 Source: https://download.qt.io/official_releases/qt/5.12/%{real_version}/submodules/%{tar_version}.tar.xz Source1: baselibs.conf +# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtdeclarative/+/299258/1 +Patch1: fix-subpixel-positioned-text.patch # PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case Patch100: sse2_nojit.patch # PATCH-FIX-OPENSUSE Switch to use python3 at build time ++++++ fix-subpixel-positioned-text.patch ++++++ >From 40ba29cae5cdb2ebd6330870a0f15e2e75d40de0 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfe...@qt.io> Date: Tue, 05 May 2020 11:36:24 +0200 Subject: [PATCH] Fix subpixel positioned text with Text.NativeRendering We would be generating subpixel positioned glyphs based on the relative positions of the glyphs, ignoring the fractional part contributed by the origin of the text. So if the text origin was inside a pixel, the subpixel antialiasing would be wrong and we would see kerning errors. This was especially visible when using AlignHCenter on text with hinting disabled and resizing the item it was aligning to. Pick-to: 5.15 Task-number: QTBUG-49646 Change-Id: I0e709ba2b5d2440e34c94c6f819befe0a65a113a --- diff --git a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp index be6ef25..831586c 100644 --- a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp +++ b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp @@ -789,11 +789,12 @@ const QMargins &margins) { Q_ASSERT(m_font.isValid()); + QPointF position(p.x(), p.y() - m_font.ascent()); QVector<QFixedPoint> fixedPointPositions; const int glyphPositionsSize = glyphPositions.size(); fixedPointPositions.reserve(glyphPositionsSize); for (int i=0; i < glyphPositionsSize; ++i) - fixedPointPositions.append(QFixedPoint::fromPointF(glyphPositions.at(i))); + fixedPointPositions.append(QFixedPoint::fromPointF(position + glyphPositions.at(i))); QTextureGlyphCache *cache = glyphCache(); @@ -815,18 +816,16 @@ Q_ASSERT(geometry->sizeOfVertex() == sizeof(QVector4D)); ushort *ip = geometry->indexDataAsUShort(); - QPointF position(p.x(), p.y() - m_font.ascent()); bool supportsSubPixelPositions = fontD->fontEngine->supportsSubPixelPositions(); for (int i=0; i<glyphIndexes.size(); ++i) { + QPointF glyphPosition = glyphPositions.at(i) + position; QFixed subPixelPosition; if (supportsSubPixelPositions) - subPixelPosition = fontD->fontEngine->subPixelPositionForX(QFixed::fromReal(glyphPositions.at(i).x())); + subPixelPosition = fontD->fontEngine->subPixelPositionForX(QFixed::fromReal(glyphPosition.x())); QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphIndexes.at(i), subPixelPosition); const QTextureGlyphCache::Coord &c = cache->coords.value(glyph); - QPointF glyphPosition = glyphPositions.at(i) + position; - // On a retina screen the glyph positions are not pre-scaled (as opposed to // eg. the raster paint engine). To ensure that we get the same behavior as // the raster engine (and CoreText itself) when it comes to rounding of the