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


Reply via email to