Accepting request 912943 from GNOME:Next
- Update to version 1.48.9: + Don't require a newly attached buffer to apply state. + Fix upside-down Xshape surface with EGLstream. + Misc. bug fixes and cleanups. + Updated translations. - Update to version 1.48.8: + Rename git `master` branch to `main` + Fix threadsafety issues with Thai + Fix a rounding problem on i386 + Fix font choice for ellipsis + Fix a crash if no fonts are found. - Drop 3ff6365.patch: Upstream have made various changes to the offending commit. OBS-URL: https://build.opensuse.org/request/show/912943 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/pango?expand=0&rev=226
This commit is contained in:
parent
e1b472270a
commit
50fb642115
121
3ff6365.patch
121
3ff6365.patch
@ -1,121 +0,0 @@
|
||||
From d4356779945855f7cc950dbe162285ccf21bcce9 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
Date: Sun, 27 Jun 2021 11:31:13 -0400
|
||||
Subject: [PATCH] shape: Bring back careful rounding code
|
||||
|
||||
When we added the round-glyph-positions option in
|
||||
c43da2d3 and b5634799, we lost some code that was careful
|
||||
to round in device coordinates.
|
||||
|
||||
The reason we lost it is that the rounding needs fontconfig-
|
||||
specific data that is only available in the backend, and the
|
||||
rounding now happens in the frontend.
|
||||
|
||||
Bringing it back is annoying, since we've run out of vfunc
|
||||
slots to get info from the backend. This commit works around
|
||||
that limitation in a hacky way.
|
||||
|
||||
Fixes: #562
|
||||
---
|
||||
pango/shape.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 73 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/pango/shape.c b/pango/shape.c
|
||||
index 04407732..b870ecad 100644
|
||||
--- a/pango/shape.c
|
||||
+++ b/pango/shape.c
|
||||
@@ -151,6 +151,32 @@ fallback_shape (const char *text,
|
||||
pango_glyph_string_reverse_range (glyphs, 0, glyphs->num_glyphs);
|
||||
}
|
||||
|
||||
+/* FIXME: This is very ugly. We are out of room for vfuncs, so we can't
|
||||
+ * easily add api to get is_hinted and the matrix from the PangoFcFont.
|
||||
+ *
|
||||
+ * Keep in sync with pangofc-font.h!
|
||||
+ */
|
||||
+struct _PangoFcFont
|
||||
+{
|
||||
+ PangoFont parent_instance;
|
||||
+
|
||||
+ gpointer font_pattern; /* fully resolved pattern */
|
||||
+ PangoFontMap *fontmap; /* associated map */
|
||||
+ gpointer priv; /* used internally */
|
||||
+ PangoMatrix matrix; /* used internally */
|
||||
+ PangoFontDescription *description;
|
||||
+
|
||||
+ GSList *metrics_by_lang;
|
||||
+
|
||||
+ guint is_hinted : 1;
|
||||
+ guint is_transformed : 1;
|
||||
+};
|
||||
+typedef struct _PangoFcFont PangoFcFont;
|
||||
+
|
||||
+#define PANGO_IS_FC_FONT(obj) \
|
||||
+ g_type_is_a (((GTypeInstance*)obj)->g_class->g_type, \
|
||||
+ g_type_from_name ("PangoFcFont"))
|
||||
+
|
||||
/**
|
||||
* pango_shape_with_flags:
|
||||
* @item_text: valid UTF-8 text to shape
|
||||
@@ -294,11 +320,54 @@ pango_shape_with_flags (const gchar *item_text,
|
||||
|
||||
if (flags & PANGO_SHAPE_ROUND_POSITIONS)
|
||||
{
|
||||
- for (i = 0; i < glyphs->num_glyphs; i++)
|
||||
+ if (PANGO_IS_FC_FONT (analysis->font))
|
||||
{
|
||||
- glyphs->glyphs[i].geometry.width = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.width );
|
||||
- glyphs->glyphs[i].geometry.x_offset = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.x_offset);
|
||||
- glyphs->glyphs[i].geometry.y_offset = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.y_offset);
|
||||
+ PangoFcFont *fc_font = (PangoFcFont *)analysis->font;
|
||||
+ if (fc_font->is_hinted)
|
||||
+ {
|
||||
+ double x_scale_inv, y_scale_inv;
|
||||
+ double x_scale, y_scale;
|
||||
+
|
||||
+ x_scale_inv = y_scale_inv = 1.0;
|
||||
+ pango_matrix_get_font_scale_factors (&fc_font->matrix, &x_scale_inv, &y_scale_inv);
|
||||
+ if (PANGO_GRAVITY_IS_IMPROPER (analysis->gravity))
|
||||
+ {
|
||||
+ x_scale_inv = -x_scale_inv;
|
||||
+ y_scale_inv = -y_scale_inv;
|
||||
+ }
|
||||
+ x_scale = 1. / x_scale_inv;
|
||||
+ y_scale = 1. / y_scale_inv;
|
||||
+
|
||||
+ if (x_scale == 1.0 && y_scale == 1.0)
|
||||
+ {
|
||||
+ for (i = 0; i < glyphs->num_glyphs; i++)
|
||||
+ glyphs->glyphs[i].geometry.width = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.width);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ #if 0
|
||||
+ if (PANGO_GRAVITY_IS_VERTICAL (analysis->gravity))
|
||||
+ {
|
||||
+ /* XXX */
|
||||
+ double tmp = x_scale;
|
||||
+ x_scale = y_scale;
|
||||
+ y_scale = -tmp;
|
||||
+ }
|
||||
+ #endif
|
||||
+ #define HINT(value, scale_inv, scale) (PANGO_UNITS_ROUND ((int) ((value) * scale)) * scale_inv)
|
||||
+ #define HINT_X(value) HINT ((value), x_scale, x_scale_inv)
|
||||
+ #define HINT_Y(value) HINT ((value), y_scale, y_scale_inv)
|
||||
+ for (i = 0; i < glyphs->num_glyphs; i++)
|
||||
+ {
|
||||
+ glyphs->glyphs[i].geometry.width = HINT_X (glyphs->glyphs[i].geometry.width);
|
||||
+ glyphs->glyphs[i].geometry.x_offset = HINT_X (glyphs->glyphs[i].geometry.x_offset);
|
||||
+ glyphs->glyphs[i].geometry.y_offset = HINT_Y (glyphs->glyphs[i].geometry.y_offset);
|
||||
+ }
|
||||
+ #undef HINT_Y
|
||||
+ #undef HINT_X
|
||||
+ #undef HINT
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
2
_service
2
_service
@ -2,7 +2,7 @@
|
||||
<service name="obs_scm" mode="disabled">
|
||||
<param name="url">https://gitlab.gnome.org/GNOME/pango.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="revision">1.48.7</param>
|
||||
<param name="revision">1.48.9</param>
|
||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:75cfc2a22b159ceae580fec1f1b32d707019d1f6a68b95a6c9e478a5911ffffe
|
||||
size 3360268
|
3
pango-1.48.9.obscpio
Normal file
3
pango-1.48.9.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:df47c33d7f826400a70b40bac20089deaaaccec69f4b530a626dd6da111da43f
|
||||
size 3444236
|
@ -1,3 +1,24 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 18 17:36:58 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 1.48.9:
|
||||
+ Don't require a newly attached buffer to apply state.
|
||||
+ Fix upside-down Xshape surface with EGLstream.
|
||||
+ Misc. bug fixes and cleanups.
|
||||
+ Updated translations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 12 12:43:30 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 1.48.8:
|
||||
+ Rename git `master` branch to `main`
|
||||
+ Fix threadsafety issues with Thai
|
||||
+ Fix a rounding problem on i386
|
||||
+ Fix font choice for ellipsis
|
||||
+ Fix a crash if no fonts are found.
|
||||
- Drop 3ff6365.patch: Upstream have made various changes to the
|
||||
offending commit.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 13 17:29:05 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: pango
|
||||
version: 1.48.7
|
||||
mtime: 1625320606
|
||||
commit: 467bda1e0bc2614b10e2edc46dccc9588388e045
|
||||
version: 1.48.9
|
||||
mtime: 1629260767
|
||||
commit: c704c8b7e096dd3d3fd684463ef0e7860c2c2db3
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: pango
|
||||
Version: 1.48.7
|
||||
Version: 1.48.9
|
||||
Release: 0
|
||||
Summary: Library for Layout and Rendering of Text
|
||||
License: LGPL-2.1-or-later
|
||||
@ -26,8 +26,6 @@ URL: https://pango.gnome.org/
|
||||
Source0: %{name}-%{version}.tar.xz
|
||||
Source2: macros.pango
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM 3ff6365.patch dimstar@opensuse.org -- Revert upstream commit, introduces runtime dep on X
|
||||
Patch0: https://gitlab.gnome.org/GNOME/pango/-/commit/3ff6365.patch
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: help2man
|
||||
@ -36,7 +34,7 @@ BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(cairo) >= 1.12.10
|
||||
BuildRequires: pkgconfig(fontconfig) >= 2.11.91
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(fribidi) >= 0.19.7
|
||||
BuildRequires: pkgconfig(fribidi) >= 1.0.6
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.62
|
||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.59.2
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
@ -120,7 +118,6 @@ to develop applications that require these.
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%patch0 -p1 -R
|
||||
|
||||
%build
|
||||
%meson \
|
||||
|
Loading…
Reference in New Issue
Block a user