aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Li <vishwin@FreeBSD.org>2023-08-18 10:35:43 +0000
committerCharlie Li <vishwin@FreeBSD.org>2023-08-26 17:43:35 +0000
commitc41b45f3bfa8136d1ff0b58bafd4a41845b59c1c (patch)
tree87c0687aff02165b54784ac34e820a56b9ac7bcc
parentffaa8cd925c26ff03e8d7e358b9fa54e774a9db5 (diff)
downloadports-c41b45f3bfa8136d1ff0b58bafd4a41845b59c1c.tar.gz
ports-c41b45f3bfa8136d1ff0b58bafd4a41845b59c1c.zip
graphics/inkscape: update to 1.3
Also update math/lib2geom to 1.3, which must be updated together Release notes: https://inkscape.org/doc/release_notes/1.3/Inkscape_1.3.html - 2.5 patches included to address system macro clashes - DBUS option removed, now uses GDBus from GLib instead of dbus-glib Differential Revision: https://reviews.freebsd.org/D41503
-rw-r--r--graphics/inkscape/Makefile35
-rw-r--r--graphics/inkscape/distinfo20
-rw-r--r--graphics/inkscape/files/patch-362f987096833dd1dfa223be82fc6a97c3795f6c1456
-rw-r--r--graphics/inkscape/files/patch-src_helper_geom.h11
-rw-r--r--graphics/inkscape/files/patch-src_object_algorithms_graphlayout.cpp10
-rw-r--r--graphics/inkscape/pkg-plist443
-rw-r--r--math/lib2geom/Makefile33
-rw-r--r--math/lib2geom/distinfo6
-rw-r--r--math/lib2geom/pkg-plist2
9 files changed, 415 insertions, 1601 deletions
diff --git a/graphics/inkscape/Makefile b/graphics/inkscape/Makefile
index c034ed336a68..5a8fc572d682 100644
--- a/graphics/inkscape/Makefile
+++ b/graphics/inkscape/Makefile
@@ -1,17 +1,11 @@
PORTNAME= inkscape
-DISTVERSION= 1.2.2
-PORTREVISION= 12
+DISTVERSION= 1.3
CATEGORIES= graphics gnome
MASTER_SITES= https://media.inkscape.org/dl/resources/file/
PATCH_SITES= https://gitlab.com/${PORTNAME}/${PORTNAME}/-/commit/
-# https://gitlab.com/inkscape/inkscape/-/merge_requests/4463
-PATCHFILES+= c5fc06a7c29d6be9e2fb18b841e973a193428332.patch:-p1 \
- 40c4147ec66319f42129ab253d0483f91329419c.patch:-p1 \
- 57c85eec491e07949497fa67edc7c76eafde7471.patch:-p1
-# 362f987096833dd1dfa223be82fc6a97c3795f6c.patch:-p1
-PATCHFILES+= fdc7329ba5036ef5cde7bb5e61ed52a69850f5d8.patch:-p1 # https://gitlab.com/inkscape/inkscape/-/merge_requests/4483
-PATCHFILES+= 781e29cd3538.patch:-p1 # https://gitlab.com/inkscape/inkscape/-/merge_requests/5111
+PATCHFILES+= 3db96bfbac475022a32b70473b767b21a8d70c7f.patch:-p1 # https://gitlab.com/inkscape/inkscape/-/issues/4427
+PATCHFILES+= 00851fede7f9162cbcacf81258d1dda823b88a5c.patch:-p1 # https://gitlab.com/inkscape/inkscape/-/merge_requests/5650
MAINTAINER= gnome@FreeBSD.org
COMMENT= Full featured open source SVG editor
@@ -28,10 +22,10 @@ LICENSE_FILE_LGPL3 = ${WRKSRC}/LICENSES/LGPL-3.0.txt
LICENSE_FILE_LGPL3+ = ${WRKSRC}/LICENSES/LGPL-3.0-or-later.txt
LICENSE_FILE_MPL11 = ${WRKSRC}/LICENSES/MPL-1.1.txt
+BUILD_DEPENDS= ragel:devel/ragel
LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
libpopt.so:devel/popt \
libgc.so:devel/boehm-gc \
- libgdl-3.so:x11-toolkits/gdl \
libgsl.so:math/gsl \
liblcms2.so:graphics/lcms2 \
libfribidi.so:converters/fribidi \
@@ -43,6 +37,8 @@ LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
libsoup-2.4.so:devel/libsoup \
libyaml.so:textproc/libyaml \
libdouble-conversion.so:devel/double-conversion \
+ libenchant-2.so:textproc/enchant2 \
+ libepoxy.so:graphics/libepoxy \
lib2geom.so:math/lib2geom
RUN_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}appdirs>0:devel/py-appdirs@${PY_FLAVOR} \
@@ -53,22 +49,25 @@ RUN_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}cssselect>0:www/py-cssselect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
fig2dev:print/fig2dev
+TEST_DEPENDS= googletest>0:devel/googletest \
+ bash:shells/bash
-USES= compiler:c++17-lang cmake cpe desktop-file-utils ghostscript:run \
+USES= compiler:c++17-lang cmake:testing cpe desktop-file-utils ghostscript:run \
gnome iconv:wchar_t jpeg pathfix pkgconfig python \
readline shebangfix tar:xz xorg
-USE_GNOME= gdkpixbuf2 gtkmm30 libxml2 libxslt
+USE_GNOME= cairo gdkpixbuf2 gtkmm30 gtksourceview4 libxml2 libxslt
+USE_PYTHON= cython
USE_XORG= sm ice x11 xext
USE_LDCONFIG= yes
-DATETAG= 2022-12-01_b0a8486541
-
+DATETAG= 2023-07-21_0e150ed6c4
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}_${DATETAG}
+BINARY_ALIAS= python3=${PYTHON_CMD}
SHEBANG_FILES= share/extensions/*.py share/extensions/genpofiles.sh \
share/templates/*.py man/fix-roff-punct
-OPTIONS_DEFINE= OPENMP POPPLER SCRIBUS VISIO CDR DBUS WPG GVFS NLS GSPELL
+OPTIONS_DEFINE= OPENMP POPPLER SCRIBUS VISIO CDR WPG GVFS NLS GSPELL
OPTIONS_DEFAULT= POPPLER VISIO CDR WPG GM GSPELL
OPTIONS_DEFAULT_amd64= OPENMP
OPTIONS_DEFAULT_powerpc64= OPENMP
@@ -82,10 +81,6 @@ CDR_CMAKE_BOOL= WITH_LIBCDR
CDR_LIB_DEPENDS= librevenge-stream-0.0.so:textproc/librevenge \
libcdr-0.1.so:graphics/libcdr01
-DBUS_CMAKE_BOOL= WITH_DBUS
-DBUS_LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
- libdbus-1.so:devel/dbus
-
GVFS_USE= GNOME=gvfs
OPENMP_CMAKE_BOOL= WITH_OPENMP
@@ -119,7 +114,7 @@ NLS_CMAKE_BOOL= WITH_NLS
NLS_USES= gettext
GSPELL_DESC= Support for spell checking through gspell
-GSPELL_CMAKE_BOOL= WITH_GSPELL
+GSPELL_CMAKE_BOOL= WITH_GSPELL
GSPELL_LIB_DEPENDS= libgspell-1.so:textproc/gspell
post-patch:
diff --git a/graphics/inkscape/distinfo b/graphics/inkscape/distinfo
index d6bdd134d472..5ba7f41d16ee 100644
--- a/graphics/inkscape/distinfo
+++ b/graphics/inkscape/distinfo
@@ -1,13 +1,7 @@
-TIMESTAMP = 1687584227
-SHA256 (inkscape-1.2.2.tar.xz) = a0c7fd0d03c0a21535e648ef301dcf80dd7cfc1f3545e51065fbf1ba3ee8a5c4
-SIZE (inkscape-1.2.2.tar.xz) = 39392040
-SHA256 (c5fc06a7c29d6be9e2fb18b841e973a193428332.patch) = 08ca608bc5509e2398d23ef67202f7155296c36e329d1d2a3b00b37d8fd08214
-SIZE (c5fc06a7c29d6be9e2fb18b841e973a193428332.patch) = 22563
-SHA256 (40c4147ec66319f42129ab253d0483f91329419c.patch) = 05e670f7d768cfbbc5aacf233fe5c169402611b4f2949a491beb45150b95b14b
-SIZE (40c4147ec66319f42129ab253d0483f91329419c.patch) = 24153
-SHA256 (57c85eec491e07949497fa67edc7c76eafde7471.patch) = e3119ce429fb60f554b42b4507becd9bee47c3cb6f71fe1fbfc46331b2bf0574
-SIZE (57c85eec491e07949497fa67edc7c76eafde7471.patch) = 26184
-SHA256 (fdc7329ba5036ef5cde7bb5e61ed52a69850f5d8.patch) = 064f76e8691b0975b6a82a21923c562d9bb9855aa08d99ece9af9da877b544d6
-SIZE (fdc7329ba5036ef5cde7bb5e61ed52a69850f5d8.patch) = 5483
-SHA256 (781e29cd3538.patch) = 0dda9fb22107b81768e41c38adacf4920c9ecd2ca6ca47efa90693481b72e1b8
-SIZE (781e29cd3538.patch) = 9262
+TIMESTAMP = 1692891317
+SHA256 (inkscape-1.3.tar.xz) = bf4f286b025e0169b8948cc14d5199a9b4c204d761c894c4b48496571ec76307
+SIZE (inkscape-1.3.tar.xz) = 85764028
+SHA256 (3db96bfbac475022a32b70473b767b21a8d70c7f.patch) = fb572fa3b566149293b0ffeae468ff6025d0e54a090d928eb8c2037afe2d3f8d
+SIZE (3db96bfbac475022a32b70473b767b21a8d70c7f.patch) = 2003
+SHA256 (00851fede7f9162cbcacf81258d1dda823b88a5c.patch) = d0ebfcb85682345d7e10d97931894acd171881a8467b70a777f37a293d255a59
+SIZE (00851fede7f9162cbcacf81258d1dda823b88a5c.patch) = 5207
diff --git a/graphics/inkscape/files/patch-362f987096833dd1dfa223be82fc6a97c3795f6c b/graphics/inkscape/files/patch-362f987096833dd1dfa223be82fc6a97c3795f6c
deleted file mode 100644
index 544a99b89eea..000000000000
--- a/graphics/inkscape/files/patch-362f987096833dd1dfa223be82fc6a97c3795f6c
+++ /dev/null
@@ -1,1456 +0,0 @@
-From 362f987096833dd1dfa223be82fc6a97c3795f6c Mon Sep 17 00:00:00 2001
-From: PBS <pbs3141@gmail.com>
-Date: Sun, 24 Apr 2022 12:21:30 +0900
-Subject: [PATCH] FontFactory refactoring
-
----
- src/display/drawing-text.cpp | 4 +-
- src/display/drawing-text.h | 8 +-
- src/libnrtype/FontFactory.cpp | 426 +++++++++++++++------------
- src/libnrtype/FontFactory.h | 142 +++------
- src/libnrtype/FontInstance.cpp | 36 +--
- src/libnrtype/Layout-TNG-Compute.cpp | 16 +-
- src/libnrtype/Layout-TNG-Input.cpp | 4 +-
- src/libnrtype/Layout-TNG-OutIter.cpp | 2 +-
- src/libnrtype/Layout-TNG-Output.cpp | 2 +-
- src/libnrtype/Layout-TNG.h | 8 +-
- src/libnrtype/font-instance.h | 6 +-
- src/libnrtype/font-lister.cpp | 2 +-
- src/object/sp-flowtext.cpp | 2 +-
- src/object/sp-text.cpp | 2 +-
- src/ui/dialog/font-substitution.cpp | 2 +-
- src/ui/dialog/glyphs.cpp | 2 +-
- src/ui/dialog/text-edit.cpp | 2 +-
- src/ui/dialog/text-edit.h | 2 +-
- src/ui/widget/font-variants.cpp | 2 +-
- src/ui/widget/font-variations.cpp | 2 +-
- 20 files changed, 323 insertions(+), 349 deletions(-)
-
-diff --git src/display/drawing-text.cpp src/display/drawing-text.cpp
-index fce8644549a..e39cff558e5 100644
---- src/display/drawing-text.cpp
-+++ src/display/drawing-text.cpp
-@@ -42,7 +42,7 @@ DrawingGlyphs::~DrawingGlyphs()
- }
-
- void
--DrawingGlyphs::setGlyph(font_instance *font, int glyph, Geom::Affine const &trans)
-+DrawingGlyphs::setGlyph(FontInstance *font, int glyph, Geom::Affine const &trans)
- {
- _markForRendering();
-
-@@ -228,7 +228,7 @@ DrawingText::clear()
- }
-
- bool
--DrawingText::addComponent(font_instance *font, int glyph, Geom::Affine const &trans,
-+DrawingText::addComponent(FontInstance *font, int glyph, Geom::Affine const &trans,
- float width, float ascent, float descent, float phase_length)
- {
- /* original, did not save a glyph for white space characters, causes problems for text-decoration
-diff --git src/display/drawing-text.h src/display/drawing-text.h
-index 084c7939219..ec0bbaaeba0 100644
---- src/display/drawing-text.h
-+++ src/display/drawing-text.h
-@@ -17,7 +17,7 @@
- #include "display/nr-style.h"
-
- class SPStyle;
--class font_instance;
-+class FontInstance;
-
- namespace Inkscape {
-
-@@ -28,7 +28,7 @@ public:
- DrawingGlyphs(Drawing &drawing);
- ~DrawingGlyphs() override;
-
-- void setGlyph(font_instance *font, int glyph, Geom::Affine const &trans);
-+ void setGlyph(FontInstance *font, int glyph, Geom::Affine const &trans);
- void setStyle(SPStyle *style, SPStyle *context_style = nullptr) override; // Not to be used
- Geom::IntRect getPickBox() const { return _pick_bbox; };
-
-@@ -37,7 +37,7 @@ public:
- unsigned flags, unsigned reset) override;
- DrawingItem *_pickItem(Geom::Point const &p, double delta, unsigned flags) override;
-
-- font_instance *_font;
-+ FontInstance *_font;
- int _glyph;
- bool _drawable;
- float _width; // These three are used to set up bounding box
-@@ -57,7 +57,7 @@ public:
- ~DrawingText() override;
-
- void clear();
-- bool addComponent(font_instance *font, int glyph, Geom::Affine const &trans,
-+ bool addComponent(FontInstance *font, int glyph, Geom::Affine const &trans,
- float width, float ascent, float descent, float phase_length);
- void setStyle(SPStyle *style, SPStyle *context_style = nullptr) override;
- void setChildrenStyle(SPStyle *context_style) override;
-diff --git src/libnrtype/FontFactory.cpp src/libnrtype/FontFactory.cpp
-index 9ce51c27e5b..7194be15487 100644
---- src/libnrtype/FontFactory.cpp
-+++ src/libnrtype/FontFactory.cpp
-@@ -11,7 +11,7 @@
- */
-
- #ifdef HAVE_CONFIG_H
--# include "config.h" // only include where actually required!
-+#include "config.h" // only include where actually required!
- #endif
-
- #ifndef PANGO_ENABLE_ENGINE
-@@ -35,48 +35,142 @@
- #include "libnrtype/font-instance.h"
- #include "libnrtype/OpenTypeUtil.h"
-
--# ifdef _WIN32
--
-+#ifdef _WIN32
- #include <glibmm.h>
- #include <windows.h>
--
- #endif
-
--typedef std::unordered_map<PangoFontDescription*, font_instance*, font_descr_hash, font_descr_equal> FaceMapType;
--
--// need to avoid using the size field
--size_t font_descr_hash::operator()( PangoFontDescription *const &x) const {
-- int h = 0;
-- char const *theF = sp_font_description_get_family(x);
-- h += (theF)?g_str_hash(theF):0;
-- h *= 1128467;
-- h += (int)pango_font_description_get_style(x);
-- h *= 1128467;
-- h += (int)pango_font_description_get_variant(x);
-- h *= 1128467;
-- h += (int)pango_font_description_get_weight(x);
-- h *= 1128467;
-- h += (int)pango_font_description_get_stretch(x);
-- char const *theV = pango_font_description_get_variations(x);
-- h *= 1128467;
-- h += (theV)?g_str_hash(theV):0;
-- return h;
--}
-+struct FontFactory::Private
-+{
-+ // A hashmap of all the loaded font instances, indexed by their PangoFontDescription.
-+ // Note: Since pango already does that, using the PangoFont could work too.
-+ struct Hash
-+ {
-+ size_t operator()(PangoFontDescription const *x) const
-+ {
-+ // Need to avoid using the size field.
-+ size_t hash = 0;
-+ auto const family = sp_font_description_get_family(x);
-+ hash += family ? g_str_hash(family) : 0;
-+ hash *= 1128467;
-+ hash += (size_t)pango_font_description_get_style(x);
-+ hash *= 1128467;
-+ hash += (size_t)pango_font_description_get_variant(x);
-+ hash *= 1128467;
-+ hash += (size_t)pango_font_description_get_weight(x);
-+ hash *= 1128467;
-+ hash += (size_t)pango_font_description_get_stretch(x);
-+ hash *= 1128467;
-+ auto const variations = pango_font_description_get_variations(x);
-+ hash += variations ? g_str_hash(variations) : 0;
-+ return hash;
-+ }
-+ };
-+
-+ struct Compare
-+ {
-+ bool operator()(PangoFontDescription const *a, PangoFontDescription const *b) const
-+ {
-+ // return pango_font_description_equal(a, b);
-+ auto const fa = sp_font_description_get_family(a);
-+ auto const fb = sp_font_description_get_family(b);
-+ if ((bool)fa != (bool)fb) return false;
-+ if (fa && fb && std::strcmp(fa, fb) != 0) return false;
-+ if (pango_font_description_get_style(a) != pango_font_description_get_style(b) ) return false;
-+ if (pango_font_description_get_variant(a) != pango_font_description_get_variant(b) ) return false;
-+ if (pango_font_description_get_weight(a) != pango_font_description_get_weight(b) ) return false;
-+ if (pango_font_description_get_stretch(a) != pango_font_description_get_stretch(b) ) return false;
-+ if (g_strcmp0(pango_font_description_get_variations(a),
-+ pango_font_description_get_variations(b) ) != 0) return false;
-+ return true;
-+ }
-+ };
-+
-+ std::unordered_map<PangoFontDescription*, FontInstance*, Hash, Compare> map;
-+
-+ // A little cache for fonts, so that you don't lose your time looking up fonts in the font list.
-+ // Each font in the cache is refcounted once (and deref'd when removed from the cache).
-+ // Note: This cache only keeps fonts from being unref'd, and does not speed up access.
-+ struct FontEntry
-+ {
-+ FontInstance *font;
-+ double age;
-+ };
-+ std::vector<FontEntry> cache;
-+ static constexpr int max_cache_size = 64;
-+
-+ void add_in_cache(FontInstance *font)
-+ {
-+ if (!font) return;
-+
-+ for (auto &c : cache) {
-+ c.age *= 0.9;
-+ }
-
--bool font_descr_equal::operator()( PangoFontDescription *const&a, PangoFontDescription *const &b) const {
-- //if ( pango_font_description_equal(a,b) ) return true;
-- char const *fa = sp_font_description_get_family(a);
-- char const *fb = sp_font_description_get_family(b);
-- if ( ( fa && fb == nullptr ) || ( fb && fa == nullptr ) ) return false;
-- if ( fa && fb && strcmp(fa,fb) != 0 ) return false;
-- if ( pango_font_description_get_style(a) != pango_font_description_get_style(b) ) return false;
-- if ( pango_font_description_get_variant(a) != pango_font_description_get_variant(b) ) return false;
-- if ( pango_font_description_get_weight(a) != pango_font_description_get_weight(b) ) return false;
-- if ( pango_font_description_get_stretch(a) != pango_font_description_get_stretch(b) ) return false;
-- if ( g_strcmp0( pango_font_description_get_variations(a),
-- pango_font_description_get_variations(b) ) != 0 ) return false;
-- return true;
--}
-+ for (auto &c : cache) {
-+ if (c.font == font) {
-+ // printf("present\n");
-+ c.age += 1.0;
-+ return;
-+ }
-+ }
-+
-+ if (cache.size() > max_cache_size) {
-+ g_warning("cache sur-plein?");
-+ return;
-+ }
-+
-+ font->Ref();
-+
-+ if (cache.size() == max_cache_size) {
-+ // Cache is filled, unref the oldest font in it.
-+ int bi = 0;
-+ double ba = cache[bi].age;
-+ for (int i = 1; i < cache.size(); i++) {
-+ if (cache[i].age < ba) {
-+ bi = i;
-+ ba = cache[bi].age;
-+ }
-+ }
-+ cache[bi].font->Unref();
-+ cache[bi] = std::move(cache.back());
-+ cache.pop_back();
-+ }
-+
-+ cache.push_back({font, 1.0});
-+ }
-+
-+ // The following two commented out maps were an attempt to allow Inkscape to use font faces
-+ // that could not be distinguished by CSS values alone. In practice, they never were that
-+ // useful as PangoFontDescription, which is used throughout our code, cannot distinguish
-+ // between faces anymore than raw CSS values (with the exception of two additional weight
-+ // values).
-+ //
-+ // During various works, for example to handle font-family lists and fonts that are not
-+ // installed on the system, the code has become less reliant on these maps. And in the work to
-+ // cache style information to speed up start up times, the maps were not being filled.
-+ // I've removed all code that used these maps as of Oct 2014 in the experimental branch.
-+ // The commented out maps are left here as a reminder of the path that was attempted.
-+ //
-+ // One possible method to keep track of font faces would be to use the 'display name', keeping
-+ // pointers to the appropriate PangoFontFace. The font_factory loadedFaces map indexing would
-+ // have to be changed to incorporate 'display name' (InkscapeFontDescription?).
-+
-+
-+ // These two maps are used for translating between what's in the UI and a pango
-+ // font description. This is necessary because Pango cannot always
-+ // reproduce these structures from the names it gave us in the first place.
-+
-+ // Key: A string produced by font_factory::ConstructFontSpecification
-+ // Value: The associated PangoFontDescription
-+ // typedef std::map<Glib::ustring, PangoFontDescription *> PangoStringToDescrMap;
-+ // PangoStringToDescrMap fontInstanceMap;
-+
-+ // Key: Family name in UI + Style name in UI
-+ // Value: The associated string that should be produced with font_factory::ConstructFontSpecification
-+ // typedef std::map<Glib::ustring, Glib::ustring> UIStringToPangoStringMap;
-+ // UIStringToPangoStringMap fontStringMap;
-+};
-
- // User must free return value.
- PangoFontDescription* ink_font_description_from_style(SPStyle const *style)
-@@ -86,7 +180,7 @@ PangoFontDescription* ink_font_description_from_style(SPStyle const *style)
- pango_font_description_set_family(descr, style->font_family.value());
-
- // This duplicates Layout::EnumConversionItem... perhaps we can share code?
-- switch ( style->font_style.computed ) {
-+ switch (style->font_style.computed) {
- case SP_CSS_FONT_STYLE_ITALIC:
- pango_font_description_set_style(descr, PANGO_STYLE_ITALIC);
- break;
-@@ -101,7 +195,7 @@ PangoFontDescription* ink_font_description_from_style(SPStyle const *style)
- break;
- }
-
-- switch( style->font_weight.computed ) {
-+ switch (style->font_weight.computed) {
- case SP_CSS_FONT_WEIGHT_100:
- pango_font_description_set_weight(descr, PANGO_WEIGHT_THIN);
- break;
-@@ -193,7 +287,7 @@ PangoFontDescription* ink_font_description_from_style(SPStyle const *style)
- break;
- }
-
-- switch ( style->font_variant.computed ) {
-+ switch (style->font_variant.computed) {
- case SP_CSS_FONT_VARIANT_SMALL_CAPS:
- pango_font_description_set_variant(descr, PANGO_VARIANT_SMALL_CAPS);
- break;
-@@ -218,12 +312,11 @@ static void noop(...) {}
- //#define PANGO_DEBUG g_print
- #define PANGO_DEBUG noop
-
--
- ///////////////////// FontFactory
- // the substitute function to tell fontconfig to enforce outline fonts
--static void FactorySubstituteFunc(FcPattern *pattern,gpointer /*data*/)
-+static void FactorySubstituteFunc(FcPattern *pattern, gpointer /*data*/)
- {
-- FcPatternAddBool(pattern, "FC_OUTLINE",FcTrue);
-+ FcPatternAddBool(pattern, "FC_OUTLINE", FcTrue);
- //char *fam = NULL;
- //FcPatternGetString(pattern, "FC_FAMILY",0, &fam);
- //printf("subst_f on %s\n",fam);
-@@ -235,30 +328,22 @@ FontFactory &FontFactory::get()
- return factory;
- }
-
--FontFactory::FontFactory() :
-- nbEnt(0), // Note: this "ents" cache only keeps fonts from being unreffed, does not speed up access
-- maxEnt(32),
-- ents(static_cast<font_entry*>(g_malloc(maxEnt*sizeof(font_entry)))),
-- fontServer(pango_ft2_font_map_new()),
-- fontContext(pango_font_map_create_context(fontServer)),
-- fontSize(512),
-- loadedPtr(new FaceMapType())
-+FontFactory::FontFactory()
-+ : fontServer(pango_ft2_font_map_new())
-+ , fontContext(pango_font_map_create_context(fontServer))
-+ , priv(std::make_unique<Private>())
- {
-- pango_ft2_font_map_set_resolution(PANGO_FT2_FONT_MAP(fontServer),
-- 72, 72);
-+ pango_ft2_font_map_set_resolution(PANGO_FT2_FONT_MAP(fontServer), 72, 72);
- #if PANGO_VERSION_CHECK(1,48,0)
-- pango_fc_font_map_set_default_substitute(PANGO_FC_FONT_MAP(fontServer),
-+ pango_fc_font_map_set_default_substitute(PANGO_FC_FONT_MAP(fontServer), FactorySubstituteFunc, this, nullptr);
- #else
-- pango_ft2_font_map_set_default_substitute(PANGO_FT2_FONT_MAP(fontServer),
-+ pango_ft2_font_map_set_default_substitute(PANGO_FT2_FONT_MAP(fontServer), FactorySubstituteFunc, this, nullptr);
- #endif
-- FactorySubstituteFunc,
-- this,
-- nullptr);
- }
-
- FontFactory::~FontFactory()
- {
-- // FIXME: This destructor wasn't getting called for years. It turns out enabling it causes crashes on exit.
-+ // FIXME: This destructor wasn't getting called for years. It turns out after finally enabling it, it crashes.
- /*
- for (int i = 0;i < nbEnt;i++) ents[i].f->Unref();
- if ( ents ) g_free(ents);
-@@ -289,20 +374,18 @@ Glib::ustring FontFactory::ConstructFontSpecification(PangoFontDescription *font
-
- PangoFontDescription *copy = pango_font_description_copy(font);
-
-- pango_font_description_unset_fields (copy, PANGO_FONT_MASK_SIZE);
-- char * copyAsString = pango_font_description_to_string(copy);
-+ pango_font_description_unset_fields(copy, PANGO_FONT_MASK_SIZE);
-+ char *copyAsString = pango_font_description_to_string(copy);
- pangoString = copyAsString;
- g_free(copyAsString);
-- copyAsString = nullptr;
-
- pango_font_description_free(copy);
--
- }
-
- return pangoString;
- }
-
--Glib::ustring FontFactory::ConstructFontSpecification(font_instance *font)
-+Glib::ustring FontFactory::ConstructFontSpecification(FontInstance *font)
- {
- Glib::ustring pangoString;
-
-@@ -322,21 +405,22 @@ Glib::ustring FontFactory::ConstructFontSpecification(font_instance *font)
- *
- * This function should be called in place of pango_font_description_get_family()
- */
--const char *sp_font_description_get_family(PangoFontDescription const *fontDescr) {
--
-+char const *sp_font_description_get_family(PangoFontDescription const *fontDescr)
-+{
- static std::map<Glib::ustring, Glib::ustring> fontNameMap;
-- std::map<Glib::ustring, Glib::ustring>::iterator it;
-
- if (fontNameMap.empty()) {
-- fontNameMap.insert(std::make_pair("Sans", "sans-serif"));
-- fontNameMap.insert(std::make_pair("Serif", "serif"));
-- fontNameMap.insert(std::make_pair("Monospace", "monospace"));
-+ fontNameMap.emplace("Sans", "sans-serif");
-+ fontNameMap.emplace("Serif", "serif");
-+ fontNameMap.emplace("Monospace", "monospace");
- }
-
- const char *pangoFamily = pango_font_description_get_family(fontDescr);
-
-- if (pangoFamily && ((it = fontNameMap.find(pangoFamily)) != fontNameMap.end())) {
-- return (it->second).c_str();
-+ if (pangoFamily) {
-+ if (auto it = fontNameMap.find(pangoFamily); it != fontNameMap.end()) {
-+ return it->second.c_str();
-+ }
- }
-
- return pangoFamily;
-@@ -352,7 +436,7 @@ Glib::ustring FontFactory::GetUIFamilyString(PangoFontDescription const *fontDes
- // For now, keep it as family name taken from pango
- const char *pangoFamily = sp_font_description_get_family(fontDescr);
-
-- if( pangoFamily ) {
-+ if (pangoFamily) {
- family = pangoFamily;
- }
- }
-@@ -376,27 +460,22 @@ Glib::ustring FontFactory::GetUIStyleString(PangoFontDescription const *fontDesc
- char *fontDescrAsString = pango_font_description_to_string(fontDescrCopy);
- style = fontDescrAsString;
- g_free(fontDescrAsString);
-- fontDescrAsString = nullptr;
- pango_font_description_free(fontDescrCopy);
- }
-
- return style;
- }
-
--
--/////
--
- // Calculate a Style "value" based on CSS values for ordering styles.
--static int StyleNameValue( const Glib::ustring &style )
-+static int StyleNameValue(Glib::ustring const &style)
- {
--
-- PangoFontDescription *pfd = pango_font_description_from_string ( style.c_str() );
-+ PangoFontDescription *pfd = pango_font_description_from_string (style.c_str());
- int value =
-- pango_font_description_get_weight ( pfd ) * 1000000 +
-- pango_font_description_get_style ( pfd ) * 10000 +
-- pango_font_description_get_stretch( pfd ) * 100 +
-- pango_font_description_get_variant( pfd );
-- pango_font_description_free ( pfd );
-+ pango_font_description_get_weight (pfd) * 1000000 +
-+ pango_font_description_get_style (pfd) * 10000 +
-+ pango_font_description_get_stretch(pfd) * 100 +
-+ pango_font_description_get_variant(pfd);
-+ pango_font_description_free (pfd);
- return value;
- }
-
-@@ -408,8 +487,7 @@ static int StyleNameValue( const Glib::ustring &style )
-
- static gint StyleNameCompareInternalGlib(gconstpointer a, gconstpointer b)
- {
-- return( StyleNameValue( ((StyleNames *)a)->CssName ) <
-- StyleNameValue( ((StyleNames *)b)->CssName ) ? -1 : 1 );
-+ return StyleNameValue(((StyleNames*)a)->CssName) < StyleNameValue(((StyleNames*)b)->CssName) ? -1 : 1;
- }
-
- static bool ustringPairSort(std::pair<PangoFontFamily*, Glib::ustring> const& first, std::pair<PangoFontFamily*, Glib::ustring> const& second)
-@@ -418,20 +496,20 @@ static bool ustringPairSort(std::pair<PangoFontFamily*, Glib::ustring> const& fi
- return first.second < second.second;
- }
-
--void FontFactory::GetUIFamilies(std::vector<PangoFontFamily *>& out)
-+void FontFactory::GetUIFamilies(std::vector<PangoFontFamily*> &out)
- {
- // Gather the family names as listed by Pango
-- PangoFontFamily** families = nullptr;
-+ PangoFontFamily **families = nullptr;
- int numFamilies = 0;
- pango_font_map_list_families(fontServer, &families, &numFamilies);
-
-- std::vector<std::pair<PangoFontFamily *, Glib::ustring> > sorted;
-+ std::vector<std::pair<PangoFontFamily*, Glib::ustring>> sorted;
-
- // not size_t
- for (int currentFamily = 0; currentFamily < numFamilies; ++currentFamily) {
- const char* displayName = pango_font_family_get_name(families[currentFamily]);
-
-- if (displayName == nullptr || *displayName == '\0') {
-+ if (!displayName || *displayName == '\0') {
- std::cerr << "font_factory::GetUIFamilies: Missing displayName! " << std::endl;
- continue;
- }
-@@ -446,18 +524,18 @@ void FontFactory::GetUIFamilies(std::vector<PangoFontFamily *>& out)
-
- std::sort(sorted.begin(), sorted.end(), ustringPairSort);
-
-- for (auto & i : sorted) {
-+ for (auto &i : sorted) {
- out.push_back(i.first);
- }
- }
-
--GList* FontFactory::GetUIStyles(PangoFontFamily * in)
-+GList *FontFactory::GetUIStyles(PangoFontFamily *in)
- {
- GList* ret = nullptr;
- // Gather the styles for this family
-- PangoFontFace** faces = nullptr;
-+ PangoFontFace **faces = nullptr;
- int numFaces = 0;
-- if (in == nullptr) {
-+ if (!in) {
- std::cerr << "font_factory::GetUIStyles(): PangoFontFamily is NULL" << std::endl;
- return ret;
- }
-@@ -468,9 +546,9 @@ GList* FontFactory::GetUIStyles(PangoFontFamily * in)
-
- // If the face has a name, describe it, and then use the
- // description to get the UI family and face strings
-- const gchar* displayName = pango_font_face_get_face_name(faces[currentFace]);
-+ gchar const *displayName = pango_font_face_get_face_name(faces[currentFace]);
- // std::cout << "Display Name: " << displayName << std::endl;
-- if (displayName == nullptr || *displayName == '\0') {
-+ if (!displayName || *displayName == '\0') {
- std::cerr << "font_factory::GetUIStyles: Missing displayName! " << std::endl;
- continue;
- }
-@@ -483,11 +561,11 @@ GList* FontFactory::GetUIStyles(PangoFontFamily * in)
-
- // Disable synthesized (faux) font faces except for CSS generic faces
- if (pango_font_face_is_synthesized(faces[currentFace]) ) {
-- if (familyUIName.compare( "sans-serif" ) != 0 &&
-- familyUIName.compare( "serif" ) != 0 &&
-- familyUIName.compare( "monospace" ) != 0 &&
-- familyUIName.compare( "fantasy" ) != 0 &&
-- familyUIName.compare( "cursive" ) != 0 ) {
-+ if (familyUIName.compare("sans-serif") != 0 &&
-+ familyUIName.compare("serif" ) != 0 &&
-+ familyUIName.compare("monospace" ) != 0 &&
-+ familyUIName.compare("fantasy" ) != 0 &&
-+ familyUIName.compare("cursive" ) != 0 ) {
- continue;
- }
- }
-@@ -547,10 +625,9 @@ GList* FontFactory::GetUIStyles(PangoFontFamily * in)
- return ret;
- }
-
--
--font_instance* FontFactory::FaceFromStyle(SPStyle const *style)
-+FontInstance* FontFactory::FaceFromStyle(SPStyle const *style)
- {
-- font_instance *font = nullptr;
-+ FontInstance *font = nullptr;
-
- g_assert(style);
-
-@@ -567,8 +644,7 @@ font_instance* FontFactory::FaceFromStyle(SPStyle const *style)
-
- // If that failed, try using the CSS information in the style
- if (!font) {
-- PangoFontDescription* temp_descr =
-- ink_font_description_from_style(style);
-+ auto temp_descr = ink_font_description_from_style(style);
- font = Face(temp_descr);
- pango_font_description_free(temp_descr);
- }
-@@ -577,18 +653,18 @@ font_instance* FontFactory::FaceFromStyle(SPStyle const *style)
- return font;
- }
-
--font_instance *FontFactory::FaceFromDescr(char const *family, char const *style)
-+FontInstance *FontFactory::FaceFromDescr(char const *family, char const *style)
- {
- PangoFontDescription *temp_descr = pango_font_description_from_string(style);
- pango_font_description_set_family(temp_descr,family);
-- font_instance *res = Face(temp_descr);
-+ FontInstance *res = Face(temp_descr);
- pango_font_description_free(temp_descr);
- return res;
- }
-
--font_instance* FontFactory::FaceFromPangoString(char const *pangoString)
-+FontInstance* FontFactory::FaceFromPangoString(char const *pangoString)
- {
-- font_instance *fontInstance = nullptr;
-+ FontInstance *fontInstance = nullptr;
-
- g_assert(pangoString);
-
-@@ -599,7 +675,7 @@ font_instance* FontFactory::FaceFromPangoString(char const *pangoString)
- PangoFontDescription *descr = pango_font_description_from_string(pangoString);
-
- if (descr) {
-- if (sp_font_description_get_family(descr) != nullptr) {
-+ if (sp_font_description_get_family(descr)) {
- fontInstance = Face(descr);
- }
- pango_font_description_free(descr);
-@@ -609,9 +685,9 @@ font_instance* FontFactory::FaceFromPangoString(char const *pangoString)
- return fontInstance;
- }
-
--font_instance* FontFactory::FaceFromFontSpecification(char const *fontSpecification)
-+FontInstance* FontFactory::FaceFromFontSpecification(char const *fontSpecification)
- {
-- font_instance *font = nullptr;
-+ FontInstance *font = nullptr;
-
- g_assert(fontSpecification);
-
-@@ -625,58 +701,60 @@ font_instance* FontFactory::FaceFromFontSpecification(char const *fontSpecificat
- return font;
- }
-
--font_instance *FontFactory::Face(PangoFontDescription *descr, bool canFail)
-+FontInstance *FontFactory::Face(PangoFontDescription *descr, bool canFail)
- {
-- pango_font_description_set_size(descr, (int) (fontSize*PANGO_SCALE)); // mandatory huge size (hinting workaround)
-+ pango_font_description_set_size(descr, fontSize * PANGO_SCALE); // Mandatory huge size (hinting workaround)
-
-- font_instance *res = nullptr;
-+ FontInstance *res = nullptr;
-
-- FaceMapType& loadedFaces = *static_cast<FaceMapType*>(loadedPtr);
-- if ( loadedFaces.find(descr) == loadedFaces.end() ) {
-- // not yet loaded
-+ if (auto it = priv->map.find(descr); it != priv->map.end()) {
-+ // Already loaded.
-+ res = it->second;
-+ res->Ref();
-+ priv->add_in_cache(res);
-+ } else {
-+ // Not yet loaded.
- PangoFont *nFace = nullptr;
-
-- // workaround for bug #1025565.
-- // fonts without families blow up Pango.
-- if (sp_font_description_get_family(descr) != nullptr) {
-- nFace = pango_font_map_load_font(fontServer,fontContext,descr);
-- }
-- else {
-+ // Workaround for bug #1025565: fonts without families blow up Pango.
-+ if (sp_font_description_get_family(descr)) {
-+ nFace = pango_font_map_load_font(fontServer, fontContext, descr);
-+ } else {
- g_warning("%s", _("Ignoring font without family that will crash Pango"));
- }
-
-- if ( nFace ) {
-+ if (nFace) {
- // duplicate FcPattern, the hard way
-- res = new font_instance();
-- // store the descr of the font we asked for, since this is the key where we intend
-- // to put the font_instance at in the unordered_map. the descr of the returned
-+ res = new FontInstance();
-+ // Store the descr of the font we asked for, since this is the key where we intend
-+ // to put the font instance at in the unordered_map. The descr of the returned
- // pangofont may differ from what was asked, so we don't know (at this
- // point) whether loadedFaces[that_descr] is free or not (and overwriting
-- // an entry will bring deallocation problems)
-+ // an entry will bring deallocation problems).
- res->descr = pango_font_description_copy(descr);
- res->parent = this;
- res->InstallFace(nFace);
-- if ( res->pFont == nullptr ) {
-- // failed to install face -> bitmap font
-+ if (!res->pFont) {
-+ // Failed to install face -> bitmap font
- // printf("face failed\n");
- res->parent = nullptr;
- delete res;
- res = nullptr;
-- if ( canFail ) {
-- char *tc = pango_font_description_to_string(descr);
-- PANGO_DEBUG("falling back from %s to 'sans-serif' because InstallFace failed\n",tc);
-+ if (canFail) {
-+ auto const tc = pango_font_description_to_string(descr);
-+ PANGO_DEBUG("falling back from %s to 'sans-serif' because InstallFace failed\n", tc);
- g_free(tc);
-- pango_font_description_set_family(descr,"sans-serif");
-- res = Face(descr,false);
-+ pango_font_description_set_family(descr, "sans-serif");
-+ res = Face(descr, false);
- }
- } else {
-- loadedFaces[res->descr]=res;
-+ priv->map.emplace(res->descr, res);
- res->Ref();
-- AddInCache(res);
-+ priv->add_in_cache(res);
- }
- } else {
-- // no match
-- if ( canFail ) {
-+ // No match.
-+ if (canFail) {
- PANGO_DEBUG("falling back to 'sans-serif'\n");
- PangoFontDescription *new_descr = pango_font_description_new();
- pango_font_description_set_family(new_descr, "sans-serif");
-@@ -686,16 +764,12 @@ font_instance *FontFactory::Face(PangoFontDescription *descr, bool canFail)
- g_critical("Could not load any face for font '%s'.", pango_font_description_to_string(descr));
- }
- }
--
-- } else {
-- // already here
-- res = loadedFaces[descr];
-- res->Ref();
-- AddInCache(res);
- }
-+
- if (res) {
- res->InitTheFace();
- }
-+
- return res;
- }
-
-@@ -714,54 +788,18 @@ font_instance *FontFactory::Face(PangoFontDescription *descr, bool canFail)
- // return res;
- // }
-
--void FontFactory::UnrefFace(font_instance *who)
-+void FontFactory::UnrefFace(FontInstance *font)
- {
-- if ( who ) {
-- FaceMapType& loadedFaces = *static_cast<FaceMapType*>(loadedPtr);
--
-- if ( loadedFaces.find(who->descr) == loadedFaces.end() ) {
-- // not found
-- char *tc = pango_font_description_to_string(who->descr);
-- g_warning("unrefFace %p=%s: failed\n",who,tc);
-- g_free(tc);
-- } else {
-- loadedFaces.erase(loadedFaces.find(who->descr));
-- // printf("unrefFace %p: success\n",who);
-- }
-- }
--}
-+ if (!font) return;
-
--void FontFactory::AddInCache(font_instance *who)
--{
-- if ( who == nullptr ) return;
-- for (int i = 0;i < nbEnt;i++) ents[i].age *= 0.9;
-- for (int i = 0;i < nbEnt;i++) {
-- if ( ents[i].f == who ) {
-- // printf("present\n");
-- ents[i].age += 1.0;
-- return;
-- }
-- }
-- if ( nbEnt > maxEnt ) {
-- printf("cache sur-plein?\n");
-- return;
-- }
-- who->Ref();
-- if ( nbEnt == maxEnt ) { // cache is filled, unref the oldest-accessed font in it
-- int bi = 0;
-- double ba = ents[bi].age;
-- for (int i = 1;i < nbEnt;i++) {
-- if ( ents[i].age < ba ) {
-- bi = i;
-- ba = ents[bi].age;
-- }
-- }
-- ents[bi].f->Unref();
-- ents[bi]=ents[--nbEnt];
-+ if (auto it = priv->map.find(font->descr); it != priv->map.end()) {
-+ priv->map.erase(it);
-+ // printf("unrefFace %p: success\n", who);
-+ } else {
-+ auto const tc = pango_font_description_to_string(font->descr);
-+ g_warning("unrefFace %p=%s: failed\n", font, tc);
-+ g_free(tc);
- }
-- ents[nbEnt].f = who;
-- ents[nbEnt].age = 1.0;
-- nbEnt++;
- }
-
- # ifdef _WIN32
-diff --git src/libnrtype/FontFactory.h src/libnrtype/FontFactory.h
-index adc9489adde..400b588af02 100644
---- src/libnrtype/FontFactory.h
-+++ src/libnrtype/FontFactory.h
-@@ -14,30 +14,16 @@
- #include <functional>
- #include <algorithm>
- #include <utility>
-+#include <memory>
-
- #include <pango/pango.h>
- #include "style.h"
-
--/* Freetype */
- #include <pango/pangoft2.h>
- #include <ft2build.h>
- #include FT_FREETYPE_H
-
--class font_instance;
--
--namespace Glib
--{
-- class ustring;
--}
--
--// the font_factory keeps a hashmap of all the loaded font_instances, and uses the PangoFontDescription
--// as index (nota: since pango already does that, using the PangoFont could work too)
--struct font_descr_hash : public std::unary_function<PangoFontDescription*,size_t> {
-- size_t operator()(PangoFontDescription *const &x) const;
--};
--struct font_descr_equal : public std::binary_function<PangoFontDescription*, PangoFontDescription*, bool> {
-- bool operator()(PangoFontDescription *const &a, PangoFontDescription *const &b) const;
--};
-+class FontInstance;
-
- // Constructs a PangoFontDescription from SPStyle. Font size is not included.
- // User must free return value.
-@@ -47,125 +33,75 @@ PangoFontDescription* ink_font_description_from_style(SPStyle const *style);
- const char *sp_font_description_get_family(PangoFontDescription const *fontDescr);
-
- // Class for style strings: both CSS and as suggested by font.
--class StyleNames {
--
--public:
-- StyleNames() = default;;
-- StyleNames( Glib::ustring name ) :
-- CssName( name ), DisplayName( name ) {};
-- StyleNames( Glib::ustring cssname, Glib::ustring displayname ) :
-- CssName(std::move( cssname )), DisplayName(std::move( displayname )) {};
-+struct StyleNames
-+{
-+ StyleNames() = default;
-+ StyleNames(Glib::ustring name) : StyleNames(name, std::move(name)) {}
-+ StyleNames(Glib::ustring cssname, Glib::ustring displayname) : CssName(std::move(cssname)), DisplayName(std::move(displayname)) {};
-
--public:
- Glib::ustring CssName; // Style as Pango/CSS would write it.
- Glib::ustring DisplayName; // Style as Font designer named it.
- };
-
--// Map type for gathering UI family and style names
--// typedef std::map<Glib::ustring, std::list<StyleNames> > FamilyToStylesMap;
--
- class FontFactory
- {
--public:
-- /** A little cache for fonts, so that you don't loose your time looking up fonts in the font list
-- * each font in the cache is refcounted once (and deref'd when removed from the cache). */
-- struct font_entry {
-- font_instance *f;
-- double age;
-- };
-- int nbEnt; ///< Number of entries.
-- int maxEnt; ///< Cache size.
-- font_entry *ents;
--
-- // Pango data. Backend-specific structures are cast to these opaque types.
-- PangoFontMap *fontServer;
-- PangoContext *fontContext;
-- double fontSize; /**< The huge fontsize used as workaround for hinting.
-- * Different between freetype and win32. */
--
- FontFactory();
- ~FontFactory();
-
-+public:
- /// Returns the font factory static instance.
- static FontFactory &get();
-
-+ ///< The fontsize used as workaround for hinting.
-+ static constexpr double fontSize = 512;
-+
-+ // Pango data. Backend-specific structures are cast to these opaque types.
-+ PangoFontMap *fontServer;
-+ PangoContext *fontContext;
-+
- /// Constructs a pango string for use with the fontStringMap (see below)
-- Glib::ustring ConstructFontSpecification(PangoFontDescription *font);
-- Glib::ustring ConstructFontSpecification(font_instance *font);
-+ Glib::ustring ConstructFontSpecification(PangoFontDescription *font);
-+ Glib::ustring ConstructFontSpecification(FontInstance *font);
-
- /// Returns strings to be used in the UI for family and face (or "style" as the column is labeled)
-- Glib::ustring GetUIFamilyString(PangoFontDescription const *fontDescr);
-- Glib::ustring GetUIStyleString(PangoFontDescription const *fontDescr);
-+ Glib::ustring GetUIFamilyString(PangoFontDescription const *fontDescr);
-+ Glib::ustring GetUIStyleString(PangoFontDescription const *fontDescr);
-
- // Helpfully inserts all font families into the provided vector
-- void GetUIFamilies(std::vector<PangoFontFamily *>& out);
-+ void GetUIFamilies(std::vector<PangoFontFamily*> &out);
- // Retrieves style information about a family in a newly allocated GList.
-- GList* GetUIStyles(PangoFontFamily * in);
-+ GList *GetUIStyles(PangoFontFamily *in);
-
- /// Retrieve a font_instance from a style object, first trying to use the font-specification, the CSS information
-- font_instance* FaceFromStyle(SPStyle const *style);
-+ FontInstance *FaceFromStyle(SPStyle const *style);
-
- // Various functions to get a font_instance from different descriptions.
-- font_instance* FaceFromDescr(char const *family, char const *style);
-- font_instance* FaceFromUIStrings(char const *uiFamily, char const *uiStyle);
-- font_instance* FaceFromPangoString(char const *pangoString);
-- font_instance* FaceFromFontSpecification(char const *fontSpecification);
-- font_instance* Face(PangoFontDescription *descr, bool canFail=true);
-- font_instance* Face(char const *family,
-- int variant=PANGO_VARIANT_NORMAL, int style=PANGO_STYLE_NORMAL,
-- int weight=PANGO_WEIGHT_NORMAL, int stretch=PANGO_STRETCH_NORMAL,
-- int size=10, int spacing=0);
--
-- /// Semi-private: tells the font_factory that the font_instance 'who' has died and should be removed from loadedFaces
-- void UnrefFace(font_instance* who);
--
-- // internal
-- void AddInCache(font_instance *who);
-+ FontInstance *FaceFromDescr(char const *family, char const *style);
-+ FontInstance *FaceFromUIStrings(char const *uiFamily, char const *uiStyle);
-+ FontInstance *FaceFromPangoString(char const *pangoString);
-+ FontInstance *FaceFromFontSpecification(char const *fontSpecification);
-+ FontInstance *Face(PangoFontDescription *descr, bool canFail = true);
-+ FontInstance *Face(char const *family,
-+ int variant = PANGO_VARIANT_NORMAL, int style = PANGO_STYLE_NORMAL,
-+ int weight = PANGO_WEIGHT_NORMAL, int stretch = PANGO_STRETCH_NORMAL,
-+ int size = 10, int spacing = 0);
-+
-+ /// Semi-private: tells the font factory that the font_instance 'font' has died and should be removed from loadedFaces
-+ void UnrefFace(FontInstance *font);
-
- # ifdef _WIN32
-- void AddFontFilesWin32(char const *directory_path);
-+ void AddFontFilesWin32(char const *directory_path);
- # endif
-
- /// Add a directory from which to include additional fonts
-- void AddFontsDir(char const *utf8dir);
-+ void AddFontsDir(char const *utf8dir);
-
- /// Add a an additional font.
-- void AddFontFile(char const *utf8file);
-+ void AddFontFile(char const *utf8file);
-
- private:
-- void* loadedPtr;
--
--
-- // The following two commented out maps were an attempt to allow Inkscape to use font faces
-- // that could not be distinguished by CSS values alone. In practice, they never were that
-- // useful as PangoFontDescription, which is used throughout our code, cannot distinguish
-- // between faces anymore than raw CSS values (with the exception of two additional weight
-- // values).
-- //
-- // During various works, for example to handle font-family lists and fonts that are not
-- // installed on the system, the code has become less reliant on these maps. And in the work to
-- // catch style information to speed up start up times, the maps were not being filled.
-- // I've removed all code that used these maps as of Oct 2014 in the experimental branch.
-- // The commented out maps are left here as a reminder of the path that was attempted.
-- //
-- // One possible method to keep track of font faces would be to use the 'display name', keeping
-- // pointers to the appropriate PangoFontFace. The font_factory loadedFaces map indexing would
-- // have to be changed to incorporate 'display name' (InkscapeFontDescription?).
--
--
-- // These two maps are used for translating between what's in the UI and a pango
-- // font description. This is necessary because Pango cannot always
-- // reproduce these structures from the names it gave us in the first place.
--
-- // Key: A string produced by font_factory::ConstructFontSpecification
-- // Value: The associated PangoFontDescription
-- // typedef std::map<Glib::ustring, PangoFontDescription *> PangoStringToDescrMap;
-- // PangoStringToDescrMap fontInstanceMap;
--
-- // Key: Family name in UI + Style name in UI
-- // Value: The associated string that should be produced with font_factory::ConstructFontSpecification
-- // typedef std::map<Glib::ustring, Glib::ustring> UIStringToPangoStringMap;
-- // UIStringToPangoStringMap fontStringMap;
-+ class Private;
-+ std::unique_ptr<Private> priv;
- };
-
- #endif // LIBNRTYPE_FONTFACTORY_H
-diff --git src/libnrtype/FontInstance.cpp src/libnrtype/FontInstance.cpp
-index 059449d0303..b4e94254779 100644
---- src/libnrtype/FontInstance.cpp
-+++ src/libnrtype/FontInstance.cpp
-@@ -102,7 +102,7 @@ static int ft2_cubic_to(FT_Vector const *control1, FT_Vector const *control2, FT
- *
- */
-
--font_instance::font_instance()
-+FontInstance::FontInstance()
- {
- //printf("font instance born\n");
- _ascent = _ascent_max = 0.8;
-@@ -121,7 +121,7 @@ font_instance::font_instance()
- _baselines[ SP_CSS_BASELINE_TEXT_AFTER_EDGE ] = -_descent;
- }
-
--font_instance::~font_instance()
-+FontInstance::~FontInstance()
- {
- if ( parent ) {
- parent->UnrefFace(this);
-@@ -156,7 +156,7 @@ font_instance::~font_instance()
- maxGlyph = 0;
- }
-
--void font_instance::Ref()
-+void FontInstance::Ref()
- {
- refCount++;
- //char *tc=pango_font_description_to_string(descr);
-@@ -164,7 +164,7 @@ void font_instance::Ref()
- //free(tc);
- }
-
--void font_instance::Unref()
-+void FontInstance::Unref()
- {
- refCount--;
- //char *tc=pango_font_description_to_string(descr);
-@@ -175,7 +175,7 @@ void font_instance::Unref()
- }
- }
-
--void font_instance::InitTheFace(bool loadgsub)
-+void FontInstance::InitTheFace(bool loadgsub)
- {
- if (pFont != nullptr && (theFace == nullptr || (loadgsub && !fulloaded))) {
- if (theFace) {
-@@ -286,7 +286,7 @@ void font_instance::InitTheFace(bool loadgsub)
- }
- }
-
--void font_instance::FreeTheFace()
-+void FontInstance::FreeTheFace()
- {
- #if HB_VERSION_ATLEAST(2,6,5)
- hb_ft_font_unlock_face(hb_font_copy);
-@@ -297,7 +297,7 @@ void font_instance::FreeTheFace()
- theFace=nullptr;
- }
-
--void font_instance::InstallFace(PangoFont* iFace)
-+void FontInstance::InstallFace(PangoFont* iFace)
- {
- if ( !iFace ) {
- return;
-@@ -316,7 +316,7 @@ void font_instance::InstallFace(PangoFont* iFace)
- }
- }
-
--bool font_instance::IsOutlineFont()
-+bool FontInstance::IsOutlineFont()
- {
- if ( pFont == nullptr ) {
- return false;
-@@ -325,7 +325,7 @@ bool font_instance::IsOutlineFont()
- return FT_IS_SCALABLE(theFace);
- }
-
--int font_instance::MapUnicodeChar(gunichar c)
-+int FontInstance::MapUnicodeChar(gunichar c)
- {
- int res = 0;
- if (pFont) {
-@@ -341,7 +341,7 @@ int font_instance::MapUnicodeChar(gunichar c)
- return res;
- }
-
--void font_instance::LoadGlyph(int glyph_id)
-+void FontInstance::LoadGlyph(int glyph_id)
- {
- if (!pFont) {
- return;
-@@ -428,7 +428,7 @@ void font_instance::LoadGlyph(int glyph_id)
- }
- }
-
--bool font_instance::FontMetrics(double &ascent,double &descent,double &xheight)
-+bool FontInstance::FontMetrics(double &ascent,double &descent,double &xheight)
- {
- if ( pFont == nullptr ) {
- return false;
-@@ -445,7 +445,7 @@ bool font_instance::FontMetrics(double &ascent,double &descent,double &xheight)
- return true;
- }
-
--bool font_instance::FontDecoration( double &underline_position, double &underline_thickness,
-+bool FontInstance::FontDecoration( double &underline_position, double &underline_thickness,
- double &linethrough_position, double &linethrough_thickness)
- {
- if (!pFont) {
-@@ -466,7 +466,7 @@ bool font_instance::FontDecoration( double &underline_position, double &underl
- return true;
- }
-
--bool font_instance::FontSlope(double &run, double &rise)
-+bool FontInstance::FontSlope(double &run, double &rise)
- {
- run = 0.0;
- rise = 1.0;
-@@ -493,7 +493,7 @@ bool font_instance::FontSlope(double &run, double &rise)
- return true;
- }
-
--Geom::OptRect font_instance::BBox(int glyph_id)
-+Geom::OptRect FontInstance::BBox(int glyph_id)
- {
- int no = -1;
- if ( id_to_no.find(glyph_id) == id_to_no.end() ) {
-@@ -515,7 +515,7 @@ Geom::OptRect font_instance::BBox(int glyph_id)
- }
- }
-
--Geom::PathVector* font_instance::PathVector(int glyph_id)
-+Geom::PathVector* FontInstance::PathVector(int glyph_id)
- {
- int no = -1;
- if ( id_to_no.find(glyph_id) == id_to_no.end() ) {
-@@ -532,7 +532,7 @@ Geom::PathVector* font_instance::PathVector(int glyph_id)
- return glyphs[no].pathvector;
- }
-
--Inkscape::Pixbuf* font_instance::PixBuf(int glyph_id)
-+Inkscape::Pixbuf* FontInstance::PixBuf(int glyph_id)
- {
- Inkscape::Pixbuf* pixbuf = nullptr;
-
-@@ -647,7 +647,7 @@ Inkscape::Pixbuf* font_instance::PixBuf(int glyph_id)
- return pixbuf;
- }
-
--double font_instance::Advance(int glyph_id, bool vertical)
-+double FontInstance::Advance(int glyph_id, bool vertical)
- {
- int no = -1;
- if ( id_to_no.find(glyph_id) == id_to_no.end() ) {
-@@ -671,7 +671,7 @@ double font_instance::Advance(int glyph_id, bool vertical)
- }
-
- // Internal function to find baselines
--void font_instance::FindFontMetrics() {
-+void FontInstance::FindFontMetrics() {
-
- // CSS2 recommends using the OS/2 values sTypoAscender and sTypoDescender for the Typographic
- // ascender and descender values:
-diff --git src/libnrtype/Layout-TNG-Compute.cpp src/libnrtype/Layout-TNG-Compute.cpp
-index b0f79e43b1b..a44e7084ea9 100644
---- src/libnrtype/Layout-TNG-Compute.cpp
-+++ src/libnrtype/Layout-TNG-Compute.cpp
-@@ -110,7 +110,7 @@ class Layout::Calculator
- pango_itemize(). */
- struct PangoItemInfo {
- PangoItem *item;
-- font_instance *font;
-+ FontInstance *font;
-
- PangoItemInfo() : item(nullptr), font(nullptr) {}
-
-@@ -426,7 +426,7 @@ bool Layout::Calculator::_measureUnbrokenSpan(ParagraphInfo const &para,
-
- // Advance does not include kerning but Pango gives wrong advances for vertical text
- // with upright orientation (pre 1.44.0).
-- font_instance *font = para.pango_items[span->end.iter_span->pango_item_index].font;
-+ FontInstance *font = para.pango_items[span->end.iter_span->pango_item_index].font;
- double font_size = span->start.iter_span->font_size;
- //double glyph_h_advance = font_size * font->Advance(info->glyph, false);
- double glyph_v_advance = font_size * font->Advance(info->glyph, true );
-@@ -775,7 +775,7 @@ void Layout::Calculator::_outputLine(ParagraphInfo const &para,
- unsigned end_byte = 0;
-
- // Get some pointers (constant for an unbroken span).
-- font_instance *font = para.pango_items[unbroken_span.pango_item_index].font;
-+ FontInstance *font = para.pango_items[unbroken_span.pango_item_index].font;
- PangoItem *pango_item = para.pango_items[unbroken_span.pango_item_index].item;
-
- // Loop over glyphs in span
-@@ -1349,7 +1349,7 @@ void Layout::Calculator::_buildPangoItemizationForPara(ParagraphInfo *para) con
- Layout::InputStreamTextSource *text_source = static_cast<Layout::InputStreamTextSource *>(_flow._input_stream[input_index]);
-
- // create the font_instance
-- font_instance *font = text_source->styleGetFontInstance();
-+ FontInstance *font = text_source->styleGetFontInstance();
- if (font == nullptr)
- continue; // bad news: we'll have to ignore all this text because we know of no font to render it
-
-@@ -1492,7 +1492,7 @@ unsigned Layout::Calculator::_buildSpansForPara(ParagraphInfo *para) const
- SPStyle * style = object->style;
- if (style) {
- new_span.font_size = style->font_size.computed * _flow.getTextLengthMultiplierDue();
-- font_instance * font = FontFactory::get().FaceFromStyle(style);
-+ FontInstance * font = FontFactory::get().FaceFromStyle(style);
- new_span.line_height_multiplier = _computeFontLineHeight(object->style);
- new_span.line_height.set(font);
- new_span.line_height *= new_span.font_size;
-@@ -1734,7 +1734,7 @@ unsigned Layout::Calculator::_buildSpansForPara(ParagraphInfo *para) const
- } else {
- // if there's no text we still need to initialise the styles
- new_span.pango_item_index = -1;
-- font_instance *font = text_source->styleGetFontInstance();
-+ FontInstance *font = text_source->styleGetFontInstance();
- if (font) {
- new_span.line_height_multiplier = _computeFontLineHeight( text_source->style );
- new_span.line_height.set( font );
-@@ -2337,12 +2337,12 @@ void Layout::_calculateCursorShapeForEmpty()
-
- InputStreamTextSource const *text_source = static_cast<InputStreamTextSource const *>(_input_stream.front());
-
-- font_instance *font = text_source->styleGetFontInstance();
-+ FontInstance *font = text_source->styleGetFontInstance();
- double font_size = text_source->style->font_size.computed;
- double caret_slope_run = 0.0, caret_slope_rise = 1.0;
- FontMetrics line_height;
- if (font) {
-- const_cast<font_instance*>(font)->FontSlope(caret_slope_run, caret_slope_rise);
-+ const_cast<FontInstance*>(font)->FontSlope(caret_slope_run, caret_slope_rise);
- font->FontMetrics(line_height.ascent, line_height.descent, line_height.xheight);
- line_height *= font_size;
- font->Unref();
-diff --git src/libnrtype/Layout-TNG-Input.cpp src/libnrtype/Layout-TNG-Input.cpp
-index 0b5560885f6..105161cec56 100644
---- src/libnrtype/Layout-TNG-Input.cpp
-+++ src/libnrtype/Layout-TNG-Input.cpp
-@@ -194,11 +194,11 @@ Layout::Alignment Layout::InputStreamTextSource::styleGetAlignment(Layout::Direc
- return para_direction == LEFT_TO_RIGHT ? LEFT : RIGHT;
- }
-
--font_instance *Layout::InputStreamTextSource::styleGetFontInstance() const
-+FontInstance *Layout::InputStreamTextSource::styleGetFontInstance() const
- {
- PangoFontDescription *descr = styleGetFontDescription();
- if (descr == nullptr) return nullptr;
-- font_instance *res = FontFactory::get().Face(descr);
-+ FontInstance *res = FontFactory::get().Face(descr);
- pango_font_description_free(descr);
- return res;
- }
-diff --git src/libnrtype/Layout-TNG-OutIter.cpp src/libnrtype/Layout-TNG-OutIter.cpp
-index dd2123e2fee..210a2dccb6d 100644
---- src/libnrtype/Layout-TNG-OutIter.cpp
-+++ src/libnrtype/Layout-TNG-OutIter.cpp
-@@ -602,7 +602,7 @@ void Layout::queryCursorShape(iterator const &it, Geom::Point &position, double
- // Horizontal text
- double caret_slope_run = 0.0, caret_slope_rise = 1.0;
- if (span->font)
-- const_cast<font_instance*>(span->font)->FontSlope(caret_slope_run, caret_slope_rise);
-+ const_cast<FontInstance*>(span->font)->FontSlope(caret_slope_run, caret_slope_rise);
- double caret_slope = atan2(caret_slope_run, caret_slope_rise);
- height = vertical_scale * (span->line_height.emSize()) / cos(caret_slope);
- rotation += caret_slope;
-diff --git src/libnrtype/Layout-TNG-Output.cpp src/libnrtype/Layout-TNG-Output.cpp
-index 33baaf76e33..61e6ad863c1 100644
---- src/libnrtype/Layout-TNG-Output.cpp
-+++ src/libnrtype/Layout-TNG-Output.cpp
-@@ -87,7 +87,7 @@ void Layout::_clearOutputObjects()
- _path_fitted = nullptr;
- }
-
--void Layout::FontMetrics::set(font_instance *font)
-+void Layout::FontMetrics::set(FontInstance *font)
- {
- if( font != nullptr ) {
- ascent = font->GetTypoAscent();
-diff --git src/libnrtype/Layout-TNG.h src/libnrtype/Layout-TNG.h
-index ec5e778cf23..2e0c11ff88f 100644
---- src/libnrtype/Layout-TNG.h
-+++ src/libnrtype/Layout-TNG.h
-@@ -41,7 +41,7 @@
- struct SPPrintContext;
- class Path;
- class SPCurve;
--class font_instance;
-+class FontInstance;
- typedef struct _PangoFontDescription PangoFontDescription;
-
- namespace Inkscape {
-@@ -632,7 +632,7 @@
- descent_max = 0.2;
- }
-
-- void set( font_instance *font );
-+ void set( FontInstance *font );
-
- // CSS 2.1 dictates that font-size is based on em-size which is defined as ascent + descent
- inline double emSize() const {return ascent + descent;}
-@@ -716,7 +716,7 @@
- // a few functions for some of the more complicated style accesses
- /// The return value must be freed with pango_font_description_free()
- PangoFontDescription *styleGetFontDescription() const;
-- font_instance *styleGetFontInstance() const;
-+ FontInstance *styleGetFontInstance() const;
- Direction styleGetBlockProgression() const;
- SPCSSTextOrientation styleGetTextOrientation() const;
- SPCSSBaseline styleGetDominantBaseline() const;
-@@ -837,7 +837,7 @@
- // A collection of characters that share the same style and position start (<text> or <tspan> x, y attributes).
- struct Span {
- unsigned in_chunk;
-- font_instance *font;
-+ FontInstance *font;
- float font_size;
- float x_start; /// relative to the start of the chunk
- float x_end; /// relative to the start of the chunk
-diff --git src/libnrtype/font-instance.h src/libnrtype/font-instance.h
-index 6ed9a1417e8..53c4cf0915a 100644
---- src/libnrtype/font-instance.h
-+++ src/libnrtype/font-instance.h
-@@ -30,7 +30,7 @@ struct font_glyph;
- // that are drawn by the raster_font, so the raster_font needs info relative to the way the
- // font need to be drawn. note that fontsize is a scale factor in the transform matrix
- // of the style
--class font_instance {
-+class FontInstance {
- public:
- // the real source of the font
- PangoFont* pFont = nullptr;
-@@ -66,8 +66,8 @@ public:
- // Does OpenType font contain SVG glyphs?
- bool fontHasSVG = false;
-
-- font_instance();
-- virtual ~font_instance();
-+ FontInstance();
-+ virtual ~FontInstance();
-
- void Ref();
- void Unref();
-diff --git src/libnrtype/font-lister.cpp src/libnrtype/font-lister.cpp
-index 06b9725559f..26ab7bf2659 100644
---- src/libnrtype/font-lister.cpp
-+++ src/libnrtype/font-lister.cpp
-@@ -463,7 +463,7 @@ Glib::ustring FontLister::system_fontspec(Glib::ustring fontspec)
- Glib::ustring out = fontspec;
-
- PangoFontDescription *descr = pango_font_description_from_string(fontspec.c_str());
-- font_instance *res = FontFactory::get().Face(descr);
-+ FontInstance *res = FontFactory::get().Face(descr);
- if (res && res->pFont) {
- PangoFontDescription *nFaceDesc = pango_font_describe(res->pFont);
- out = sp_font_description_get_family(nFaceDesc);
-diff --git src/object/sp-flowtext.cpp src/object/sp-flowtext.cpp
-index 01ac873799e..5abb61200c7 100644
---- src/object/sp-flowtext.cpp
-+++ src/object/sp-flowtext.cpp
-@@ -344,7 +344,7 @@ void SPFlowtext::_buildLayoutInput(SPObject *root, Shape const *exclusion_shape,
-
- layout.strut.reset();
- if (style) {
-- font_instance *font = FontFactory::get().FaceFromStyle( style );
-+ FontInstance *font = FontFactory::get().FaceFromStyle( style );
- if (font) {
- font->FontMetrics(layout.strut.ascent, layout.strut.descent, layout.strut.xheight);
- font->Unref();
-diff --git src/object/sp-text.cpp src/object/sp-text.cpp
-index 018fdebc62d..6d4ee61b35d 100644
---- src/object/sp-text.cpp
-+++ src/object/sp-text.cpp
-@@ -489,7 +489,7 @@ void SPText::_buildLayoutInit()
- if (style) {
-
- // Strut
-- font_instance *font = FontFactory::get().FaceFromStyle( style );
-+ FontInstance *font = FontFactory::get().FaceFromStyle( style );
- if (font) {
- font->FontMetrics(layout.strut.ascent, layout.strut.descent, layout.strut.xheight);
- font->Unref();
-diff --git src/ui/dialog/font-substitution.cpp src/ui/dialog/font-substitution.cpp
-index 3d2bedf3f06..e827a3fab0b 100644
---- src/ui/dialog/font-substitution.cpp
-+++ src/ui/dialog/font-substitution.cpp
-@@ -243,7 +243,7 @@ Glib::ustring FontSubstitution::getSubstituteFontName (Glib::ustring font)
-
- PangoFontDescription *descr = pango_font_description_new();
- pango_font_description_set_family(descr,font.c_str());
-- font_instance *res = FontFactory::get().Face(descr);
-+ FontInstance *res = FontFactory::get().Face(descr);
- if (res->pFont) {
- PangoFontDescription *nFaceDesc = pango_font_describe(res->pFont);
- out = sp_font_description_get_family(nFaceDesc);
-diff --git src/ui/dialog/glyphs.cpp src/ui/dialog/glyphs.cpp
-index f61e7d4c802..91f1988e047 100644
---- src/ui/dialog/glyphs.cpp
-+++ src/ui/dialog/glyphs.cpp
-@@ -710,7 +710,7 @@ void GlyphsPanel::rebuild()
- {
- Glib::ustring fontspec = fontSelector->get_fontspec();
-
-- font_instance* font = nullptr;
-+ FontInstance* font = nullptr;
- if( !fontspec.empty() ) {
- font = FontFactory::get().FaceFromFontSpecification( fontspec.c_str() );
- }
-diff --git src/ui/dialog/text-edit.cpp src/ui/dialog/text-edit.cpp
-index 82e2b782546..6565a31d5ec 100644
---- src/ui/dialog/text-edit.cpp
-+++ src/ui/dialog/text-edit.cpp
-@@ -475,7 +475,7 @@ void TextEdit::onFontFeatures(Gtk::Widget * widgt, int pos)
- if (pos == 1) {
- Glib::ustring fontspec = font_selector.get_fontspec();
- if (!fontspec.empty()) {
-- font_instance *res = FontFactory::get().FaceFromFontSpecification(fontspec.c_str());
-+ FontInstance *res = FontFactory::get().FaceFromFontSpecification(fontspec.c_str());
- if (res && !res->fulloaded) {
- res->InitTheFace(true);
- font_features.update_opentype(fontspec);
-diff --git src/ui/dialog/text-edit.h src/ui/dialog/text-edit.h
-index af917ff1f9d..f9bd13bf32f 100644
---- src/ui/dialog/text-edit.h
-+++ src/ui/dialog/text-edit.h
-@@ -40,7 +40,7 @@ class TextView;
- }
-
- class SPItem;
--class font_instance;
-+class FontInstance;
- class SPCSSAttr;
-
- namespace Inkscape {
-diff --git src/ui/widget/font-variants.cpp src/ui/widget/font-variants.cpp
-index 66942b3bd7c..d045d101aba 100644
---- src/ui/widget/font-variants.cpp
-+++ src/ui/widget/font-variants.cpp
-@@ -765,7 +765,7 @@ namespace Widget {
- FontVariants::update_opentype (Glib::ustring& font_spec) {
-
- // Disable/Enable based on available OpenType tables.
-- font_instance* res = FontFactory::get().FaceFromFontSpecification( font_spec.c_str() );
-+ FontInstance* res = FontFactory::get().FaceFromFontSpecification( font_spec.c_str() );
- if( res ) {
-
- std::map<Glib::ustring, OTSubstitution>::iterator it;
-diff --git src/ui/widget/font-variations.cpp src/ui/widget/font-variations.cpp
-index 84088bd62b0..dc57437976b 100644
---- src/ui/widget/font-variations.cpp
-+++ src/ui/widget/font-variations.cpp
-@@ -71,7 +71,7 @@ FontVariations::FontVariations () :
- // Update GUI based on query.
- void FontVariations::update(Glib::ustring const &font_spec)
- {
-- font_instance* res = FontFactory::get().FaceFromFontSpecification(font_spec.c_str());
-+ FontInstance* res = FontFactory::get().FaceFromFontSpecification(font_spec.c_str());
-
- auto children = get_children();
- for (auto child : children) {
---
-GitLab
-
diff --git a/graphics/inkscape/files/patch-src_helper_geom.h b/graphics/inkscape/files/patch-src_helper_geom.h
new file mode 100644
index 000000000000..6c6a70977402
--- /dev/null
+++ b/graphics/inkscape/files/patch-src_helper_geom.h
@@ -0,0 +1,11 @@
+--- src/helper/geom.h.orig 2023-08-24 15:45:30 UTC
++++ src/helper/geom.h
+@@ -55,7 +55,7 @@ inline Geom::Coord triangle_area(Geom::Point const &p1
+ return p1[X] * p2[Y] + p1[Y] * p3[X] + p2[X] * p3[Y] - p2[Y] * p3[X] - p1[Y] * p2[X] - p1[X] * p3[Y];
+ }
+
+-inline auto rounddown(Geom::IntPoint const &a, Geom::IntPoint const &b)
++inline auto round_down(Geom::IntPoint const &a, Geom::IntPoint const &b)
+ {
+ using namespace Inkscape::Util;
+ return Geom::IntPoint(round_down(a.x(), b.x()), round_down(a.y(), b.y()));
diff --git a/graphics/inkscape/files/patch-src_object_algorithms_graphlayout.cpp b/graphics/inkscape/files/patch-src_object_algorithms_graphlayout.cpp
deleted file mode 100644
index cb95fbc39ea3..000000000000
--- a/graphics/inkscape/files/patch-src_object_algorithms_graphlayout.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/object/algorithms/graphlayout.cpp.orig 2022-11-26 17:42:01 UTC
-+++ src/object/algorithms/graphlayout.cpp
-@@ -14,6 +14,7 @@
- */
-
- #include <algorithm>
-+#include <array>
- #include <cstring>
- #include <iostream>
- #include <list>
diff --git a/graphics/inkscape/pkg-plist b/graphics/inkscape/pkg-plist
index 77560528630c..628d410e4eb9 100644
--- a/graphics/inkscape/pkg-plist
+++ b/graphics/inkscape/pkg-plist
@@ -1,6 +1,7 @@
bin/inkscape
bin/inkview
lib/inkscape/libinkscape_base.so
+lib/inkscape/libinkscape_base.so.1.3.0.0
share/applications/org.inkscape.Inkscape.desktop
share/bash-completion/completions/inkscape
share/icons/hicolor/16x16/apps/org.inkscape.Inkscape.png
@@ -236,12 +237,16 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/color_rgbbarrel.inx
%%DATADIR%%/extensions/color_rgbbarrel.py
%%DATADIR%%/extensions/colors.xml
+%%DATADIR%%/extensions/construct_from_triangle.inx
+%%DATADIR%%/extensions/construct_from_triangle.py
%%DATADIR%%/extensions/convert2dashes.inx
%%DATADIR%%/extensions/convert2dashes.py
%%DATADIR%%/extensions/dhw_input.inx
%%DATADIR%%/extensions/dhw_input.py
%%DATADIR%%/extensions/dimension.inx
%%DATADIR%%/extensions/dimension.py
+%%DATADIR%%/extensions/distribute_along_path.inx
+%%DATADIR%%/extensions/distribute_along_path.py
%%DATADIR%%/extensions/doc_ai_convert.inx
%%DATADIR%%/extensions/doc_ai_convert.py
%%DATADIR%%/extensions/docinfo.inx
@@ -276,10 +281,14 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/docs/conf.py
%%DATADIR%%/extensions/docs/dev/getting-started.rst
%%DATADIR%%/extensions/docs/dev/index.rst
+%%DATADIR%%/extensions/docs/extensions/index.rst
+%%DATADIR%%/extensions/docs/extensions/svg2xaml.rst
%%DATADIR%%/extensions/docs/favicon.svg
%%DATADIR%%/extensions/docs/index.rst
%%DATADIR%%/extensions/docs/make.bat
+%%DATADIR%%/extensions/docs/poetry-parse.py
%%DATADIR%%/extensions/docs/source/index.rst
+%%DATADIR%%/extensions/docs/tutorial/creating-objects.rst
%%DATADIR%%/extensions/docs/tutorial/index.rst
%%DATADIR%%/extensions/docs/tutorial/my-first-effect-extension.rst
%%DATADIR%%/extensions/docs/tutorial/my-first-import-extension.rst
@@ -299,8 +308,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/dpi90to96.inx
%%DATADIR%%/extensions/dpi96to90.inx
%%DATADIR%%/extensions/dpiswitcher.py
-%%DATADIR%%/extensions/draw_from_triangle.inx
-%%DATADIR%%/extensions/draw_from_triangle.py
%%DATADIR%%/extensions/dxf12_outlines.inx
%%DATADIR%%/extensions/dxf12_outlines.py
%%DATADIR%%/extensions/dxf14_footer.txt
@@ -311,8 +318,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/dxf_input_text_scale_factor.svg
%%DATADIR%%/extensions/dxf_outlines.inx
%%DATADIR%%/extensions/dxf_outlines.py
-%%DATADIR%%/extensions/edge3d.inx
-%%DATADIR%%/extensions/edge3d.py
%%DATADIR%%/extensions/eps_input.inx
%%DATADIR%%/extensions/export_gimp_palette.inx
%%DATADIR%%/extensions/export_gimp_palette.py
@@ -332,9 +337,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/funcplot.inx
%%DATADIR%%/extensions/funcplot.py
%%DATADIR%%/extensions/gcodetools_check_for_updates.inx.h
-%%DATADIR%%/extensions/generate_voronoi.inx
-%%DATADIR%%/extensions/generate_voronoi.py
-%%DATADIR%%/extensions/genpofiles.sh
%%DATADIR%%/extensions/gimp_xcf.inx
%%DATADIR%%/extensions/gimp_xcf.py
%%DATADIR%%/extensions/grid_cartesian.inx
@@ -351,12 +353,16 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/handles.py
%%DATADIR%%/extensions/hershey.inx
%%DATADIR%%/extensions/hershey.py
-%%DATADIR%%/extensions/hpgl_decoder.py
+%%DATADIR%%/extensions/hpgl2_input.py
%%DATADIR%%/extensions/hpgl_encoder.py
%%DATADIR%%/extensions/hpgl_input.inx
-%%DATADIR%%/extensions/hpgl_input.py
+%%DATADIR%%/extensions/hpgl_input_sm.py
%%DATADIR%%/extensions/hpgl_output.inx
%%DATADIR%%/extensions/hpgl_output.py
+%%DATADIR%%/extensions/hpgl_parser.py
+%%DATADIR%%/extensions/icons/businesscard_landscape.svg
+%%DATADIR%%/extensions/icons/dvd_box.svg
+%%DATADIR%%/extensions/icons/seamless_pattern.svg
%%DATADIR%%/extensions/image_attributes.inx
%%DATADIR%%/extensions/image_attributes.py
%%DATADIR%%/extensions/image_embed.inx
@@ -422,9 +428,12 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/inkex/tester/__init__.py
%%DATADIR%%/extensions/inkex/tester/decorators.py
%%DATADIR%%/extensions/inkex/tester/filters.py
+%%DATADIR%%/extensions/inkex/tester/inkscape.extension.rng
+%%DATADIR%%/extensions/inkex/tester/inkscape.extension.schema
%%DATADIR%%/extensions/inkex/tester/inx.py
%%DATADIR%%/extensions/inkex/tester/mock.py
%%DATADIR%%/extensions/inkex/tester/svg.py
+%%DATADIR%%/extensions/inkex/tester/test_inx_file.py
%%DATADIR%%/extensions/inkex/tester/word.py
%%DATADIR%%/extensions/inkex/tester/xmldiff.py
%%DATADIR%%/extensions/inkex/transforms.py
@@ -432,7 +441,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/inkex/tween.py
%%DATADIR%%/extensions/inkex/units.py
%%DATADIR%%/extensions/inkex/utils.py
-%%DATADIR%%/extensions/inkman/inkman/.git
+%%DATADIR%%/extensions/inkman/inkman/LICENSE.txt
%%DATADIR%%/extensions/inkman/inkman/inkman/__init__.py
%%DATADIR%%/extensions/inkman/inkman/inkman/archive.py
%%DATADIR%%/extensions/inkman/inkman/inkman/backfoot.py
@@ -464,12 +473,12 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/inkman/inkman/manage_extensions.inx
%%DATADIR%%/extensions/inkman/inkman/manage_extensions.py
%%DATADIR%%/extensions/inkman/inkman/pyproject.toml
-%%DATADIR%%/extensions/inkscape.extension.rng
-%%DATADIR%%/extensions/inkscape.extension.schema
%%DATADIR%%/extensions/inkscape_follow_link.inx
%%DATADIR%%/extensions/inkscape_follow_link.py
%%DATADIR%%/extensions/inkweb.js
%%DATADIR%%/extensions/inkwebeffect.py
+%%DATADIR%%/extensions/inset_shadow.inx
+%%DATADIR%%/extensions/inset_shadow.py
%%DATADIR%%/extensions/interp.inx
%%DATADIR%%/extensions/interp.py
%%DATADIR%%/extensions/interp_att_g.inx
@@ -512,6 +521,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/layout_nup.py
%%DATADIR%%/extensions/lindenmayer.inx
%%DATADIR%%/extensions/lindenmayer.py
+%%DATADIR%%/extensions/long_shadow.inx
+%%DATADIR%%/extensions/long_shadow.py
%%DATADIR%%/extensions/lorem_ipsum.inx
%%DATADIR%%/extensions/lorem_ipsum.py
%%DATADIR%%/extensions/markers_strokepaint.inx
@@ -522,8 +533,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/media_zip.py
%%DATADIR%%/extensions/merge_styles.inx
%%DATADIR%%/extensions/merge_styles.py
-%%DATADIR%%/extensions/motion.inx
-%%DATADIR%%/extensions/motion.py
%%DATADIR%%/extensions/new_glyph_layer.inx
%%DATADIR%%/extensions/new_glyph_layer.py
%%DATADIR%%/extensions/next_glyph_layer.inx
@@ -569,12 +578,39 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/other/clipart/sources/reactome.svg
%%DATADIR%%/extensions/other/clipart/sources/wikimedia.py
%%DATADIR%%/extensions/other/clipart/sources/wikimedia.svg
+%%DATADIR%%/extensions/other/extension-xaml/.darglint
+%%DATADIR%%/extensions/other/extension-xaml/.pre-commit-config.yaml
+%%DATADIR%%/extensions/other/extension-xaml/.pylintrc
+%%DATADIR%%/extensions/other/extension-xaml/LICENSE.txt
+%%DATADIR%%/extensions/other/extension-xaml/docs/svg2xaml.rst
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/__init__.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/__init__.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/base.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/config.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/shapes.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/structural.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/text.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/utils.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/svg2xaml.inx
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/svg2xaml.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/tester.py
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg.inx
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/animation.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/brushes.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/canvas.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/geometry.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/properties.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/shapes.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xaml2svg/transform.xsl
+%%DATADIR%%/extensions/other/extension-xaml/inkxaml/xamlobjects.py
+%%DATADIR%%/extensions/other/extension-xaml/readme.md
+%%DATADIR%%/extensions/other/extension-xaml/tox.ini
%%DATADIR%%/extensions/other/gcodetools/.darglint
%%DATADIR%%/extensions/other/gcodetools/.pylintrc
%%DATADIR%%/extensions/other/gcodetools/LICENSE.txt
%%DATADIR%%/extensions/other/gcodetools/MANIFEST.in
%%DATADIR%%/extensions/other/gcodetools/README.md
-%%DATADIR%%/extensions/other/gcodetools/TESTING.md
%%DATADIR%%/extensions/other/gcodetools/gcodetools.py
%%DATADIR%%/extensions/other/gcodetools/gcodetools_about.inx
%%DATADIR%%/extensions/other/gcodetools/gcodetools_area.inx
@@ -586,12 +622,49 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/other/gcodetools/gcodetools_path_to_gcode.inx
%%DATADIR%%/extensions/other/gcodetools/gcodetools_prepare_path_for_plasma.inx
%%DATADIR%%/extensions/other/gcodetools/gcodetools_tools_library.inx
-%%DATADIR%%/extensions/other/gcodetools/genpofiles.sh
%%DATADIR%%/extensions/other/gcodetools/setup.cfg
%%DATADIR%%/extensions/other/gcodetools/tox.ini
+%%DATADIR%%/extensions/other/templates/icons/celticf.svg
+%%DATADIR%%/extensions/other/templates/icons/celtick.svg
+%%DATADIR%%/extensions/other/templates/icons/cross.svg
+%%DATADIR%%/extensions/other/templates/icons/crown.svg
+%%DATADIR%%/extensions/other/templates/icons/diamond.svg
+%%DATADIR%%/extensions/other/templates/icons/droplet.svg
+%%DATADIR%%/extensions/other/templates/icons/dtarget.svg
+%%DATADIR%%/extensions/other/templates/icons/dvision.svg
+%%DATADIR%%/extensions/other/templates/icons/explosion.svg
+%%DATADIR%%/extensions/other/templates/icons/hive.svg
+%%DATADIR%%/extensions/other/templates/icons/ktile.svg
+%%DATADIR%%/extensions/other/templates/icons/lily.svg
+%%DATADIR%%/extensions/other/templates/icons/rose.svg
+%%DATADIR%%/extensions/other/templates/icons/target.svg
+%%DATADIR%%/extensions/other/templates/icons/trellis.svg
+%%DATADIR%%/extensions/other/templates/icons/tv.svg
+%%DATADIR%%/extensions/other/templates/icons/unknown.svg
+%%DATADIR%%/extensions/other/templates/icons/vcross.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_01_trellis.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_02_diamond.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_03_cross.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_04_very_cross.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_05_target.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_06_hive.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_07_double_vision.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_08_celtic_flower.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_09_kitchen_tile.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_10_rose.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_11_diamond_target.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_12_tv_test_pattern.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_13_lily.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_14_explosion.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_15_crown.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_16_celtic_knot.svg
+%%DATADIR%%/extensions/other/templates/shape_prefab_17_droplet.svg
+%%DATADIR%%/extensions/other/templates/template_shape_prefab.inx
+%%DATADIR%%/extensions/other/templates/template_shape_prefab.py
%%DATADIR%%/extensions/output_scour.inx
%%DATADIR%%/extensions/output_scour.py
%%DATADIR%%/extensions/output_scour.svg
+%%DATADIR%%/extensions/package-readme.md
%%DATADIR%%/extensions/param_curves.inx
%%DATADIR%%/extensions/param_curves.py
%%DATADIR%%/extensions/path_envelope.inx
@@ -604,11 +677,9 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/path_number_nodes.py
%%DATADIR%%/extensions/path_to_absolute.inx
%%DATADIR%%/extensions/path_to_absolute.py
-%%DATADIR%%/extensions/pathalongpath.inx
-%%DATADIR%%/extensions/pathalongpath.py
%%DATADIR%%/extensions/pathmodifier.py
-%%DATADIR%%/extensions/pathscatter.inx
-%%DATADIR%%/extensions/pathscatter.py
+%%DATADIR%%/extensions/patternalongpath.inx
+%%DATADIR%%/extensions/patternalongpath.py
%%DATADIR%%/extensions/pdflatex.inx
%%DATADIR%%/extensions/pdflatex.py
%%DATADIR%%/extensions/perfectboundcover.inx
@@ -622,8 +693,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/poetry.lock
%%DATADIR%%/extensions/polyhedron_3d.inx
%%DATADIR%%/extensions/polyhedron_3d.py
-%%DATADIR%%/extensions/prepare_file_save_as.inx
-%%DATADIR%%/extensions/prepare_file_save_as.py
%%DATADIR%%/extensions/previous_glyph_layer.inx
%%DATADIR%%/extensions/previous_glyph_layer.py
%%DATADIR%%/extensions/printing_marks.inx
@@ -672,8 +741,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/straightseg.py
%%DATADIR%%/extensions/svg2fxg.inx
%%DATADIR%%/extensions/svg2fxg.xsl
-%%DATADIR%%/extensions/svg2xaml.inx
-%%DATADIR%%/extensions/svg2xaml.xsl
%%DATADIR%%/extensions/svg_fonts/EMSAllure.svg
%%DATADIR%%/extensions/svg_fonts/EMSElfin.svg
%%DATADIR%%/extensions/svg_fonts/EMSFelix.svg
@@ -705,16 +772,10 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/tar_layers.py
%%DATADIR%%/extensions/template.py
%%DATADIR%%/extensions/template_business_card.inx
-%%DATADIR%%/extensions/template_desktop.inx
%%DATADIR%%/extensions/template_dvd_cover.inx
%%DATADIR%%/extensions/template_dvd_cover.py
-%%DATADIR%%/extensions/template_envelope.inx
-%%DATADIR%%/extensions/template_generic.inx
-%%DATADIR%%/extensions/template_icon.inx
-%%DATADIR%%/extensions/template_page.inx
%%DATADIR%%/extensions/template_seamless_pattern.inx
%%DATADIR%%/extensions/template_seamless_pattern.py
-%%DATADIR%%/extensions/template_video.inx
%%DATADIR%%/extensions/text_braille.inx
%%DATADIR%%/extensions/text_braille.py
%%DATADIR%%/extensions/text_extract.inx
@@ -739,11 +800,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/tox.ini
%%DATADIR%%/extensions/triangle.inx
%%DATADIR%%/extensions/triangle.py
+%%DATADIR%%/extensions/twirl.inx
+%%DATADIR%%/extensions/twirl.py
%%DATADIR%%/extensions/ungroup_deep.inx
%%DATADIR%%/extensions/ungroup_deep.py
%%DATADIR%%/extensions/voronoi.py
-%%DATADIR%%/extensions/voronoi2svg.inx
-%%DATADIR%%/extensions/voronoi2svg.py
+%%DATADIR%%/extensions/voronoi_diagram.inx
+%%DATADIR%%/extensions/voronoi_diagram.py
+%%DATADIR%%/extensions/voronoi_fill.inx
+%%DATADIR%%/extensions/voronoi_fill.py
%%DATADIR%%/extensions/web_interactive_mockup.inx
%%DATADIR%%/extensions/web_interactive_mockup.py
%%DATADIR%%/extensions/web_set_att.inx
@@ -757,19 +822,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/extensions/webslicer_effect.py
%%DATADIR%%/extensions/webslicer_export.inx
%%DATADIR%%/extensions/webslicer_export.py
-%%DATADIR%%/extensions/whirl.inx
-%%DATADIR%%/extensions/whirl.py
%%DATADIR%%/extensions/wireframe_sphere.inx
%%DATADIR%%/extensions/wireframe_sphere.py
-%%DATADIR%%/extensions/xaml2svg.inx
-%%DATADIR%%/extensions/xaml2svg.xsl
-%%DATADIR%%/extensions/xaml2svg/animation.xsl
-%%DATADIR%%/extensions/xaml2svg/brushes.xsl
-%%DATADIR%%/extensions/xaml2svg/canvas.xsl
-%%DATADIR%%/extensions/xaml2svg/geometry.xsl
-%%DATADIR%%/extensions/xaml2svg/properties.xsl
-%%DATADIR%%/extensions/xaml2svg/shapes.xsl
-%%DATADIR%%/extensions/xaml2svg/transform.xsl
%%DATADIR%%/filters/README
%%DATADIR%%/filters/filters.svg
%%DATADIR%%/fonts/README
@@ -804,6 +858,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/connector-ignore.svg
%%DATADIR%%/icons/Tango/scalable/actions/construct-grid.svg
%%DATADIR%%/icons/Tango/scalable/actions/copy-rotate.svg
+%%DATADIR%%/icons/Tango/scalable/actions/corners.svg
%%DATADIR%%/icons/Tango/scalable/actions/curvestitching.svg
%%DATADIR%%/icons/Tango/scalable/actions/dashed-stroke.svg
%%DATADIR%%/icons/Tango/scalable/actions/dialog-align-and-distribute.svg
@@ -842,6 +897,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/document-import-web.svg
%%DATADIR%%/icons/Tango/scalable/actions/document-import.svg
%%DATADIR%%/icons/Tango/scalable/actions/document-metadata.svg
+%%DATADIR%%/icons/Tango/scalable/actions/draw-booleans.svg
%%DATADIR%%/icons/Tango/scalable/actions/draw-calligraphic.svg
%%DATADIR%%/icons/Tango/scalable/actions/draw-connector.svg
%%DATADIR%%/icons/Tango/scalable/actions/draw-cuboid.svg
@@ -947,6 +1003,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/layer-raise.svg
%%DATADIR%%/icons/Tango/scalable/actions/layer-rename.svg
%%DATADIR%%/icons/Tango/scalable/actions/layer-top.svg
+%%DATADIR%%/icons/Tango/scalable/actions/list-add-symbolic.svg
+%%DATADIR%%/icons/Tango/scalable/actions/list-remove-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/measure-segments.svg
%%DATADIR%%/icons/Tango/scalable/actions/mirror-symmetry.svg
%%DATADIR%%/icons/Tango/scalable/actions/mirroring-0000.svg
@@ -1019,6 +1077,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-division.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-effect-parameter-next.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-exclusion.svg
+%%DATADIR%%/icons/Tango/scalable/actions/path-flatten.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-inset.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-intersection.svg
%%DATADIR%%/icons/Tango/scalable/actions/path-mask-edit.svg
@@ -1043,6 +1102,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/powerclip.svg
%%DATADIR%%/icons/Tango/scalable/actions/powermask.svg
%%DATADIR%%/icons/Tango/scalable/actions/powerstroke.svg
+%%DATADIR%%/icons/Tango/scalable/actions/preview-mode.svg
%%DATADIR%%/icons/Tango/scalable/actions/pts2ellipse.svg
%%DATADIR%%/icons/Tango/scalable/actions/rectangle-make-corners-sharp.svg
%%DATADIR%%/icons/Tango/scalable/actions/rotate-random.svg
@@ -1058,6 +1118,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/selection-move-to-layer-below.svg
%%DATADIR%%/icons/Tango/scalable/actions/selection-raise.svg
%%DATADIR%%/icons/Tango/scalable/actions/selection-top.svg
+%%DATADIR%%/icons/Tango/scalable/actions/shapebuilder-tool-difference.svg
+%%DATADIR%%/icons/Tango/scalable/actions/shapebuilder-tool-union.svg
%%DATADIR%%/icons/Tango/scalable/actions/show-bounding-box.svg
%%DATADIR%%/icons/Tango/scalable/actions/show-dialogs.svg
%%DATADIR%%/icons/Tango/scalable/actions/show-grid.svg
@@ -1095,9 +1157,11 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/Tango/scalable/actions/stroke-join-miter.svg
%%DATADIR%%/icons/Tango/scalable/actions/stroke-join-round.svg
%%DATADIR%%/icons/Tango/scalable/actions/stroke-to-path.svg
+%%DATADIR%%/icons/Tango/scalable/actions/symbols.svg
%%DATADIR%%/icons/Tango/scalable/actions/taper-stroke.svg
%%DATADIR%%/icons/Tango/scalable/actions/text-convert-to-regular.svg
%%DATADIR%%/icons/Tango/scalable/actions/text-flow-into-frame.svg
+%%DATADIR%%/icons/Tango/scalable/actions/text-flow-subtract-frame.svg
%%DATADIR%%/icons/Tango/scalable/actions/text-put-on-path.svg
%%DATADIR%%/icons/Tango/scalable/actions/text-remove-from-path.svg
%%DATADIR%%/icons/Tango/scalable/actions/text-unflow.svg
@@ -1151,6 +1215,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/cursors/box.svg
%%DATADIR%%/icons/hicolor/cursors/calligraphy.svg
%%DATADIR%%/icons/hicolor/cursors/connector.svg
+%%DATADIR%%/icons/hicolor/cursors/cursor-delete.svg
+%%DATADIR%%/icons/hicolor/cursors/cursor-union.svg
%%DATADIR%%/icons/hicolor/cursors/cursors.css
%%DATADIR%%/icons/hicolor/cursors/dropper-drop-fill.svg
%%DATADIR%%/icons/hicolor/cursors/dropper-drop-stroke.svg
@@ -1243,14 +1309,17 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/bspline.svg
%%DATADIR%%/icons/hicolor/scalable/actions/bug.svg
%%DATADIR%%/icons/hicolor/scalable/actions/clone-original.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/close.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-fill.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-gradient.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-management.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/color-palette.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-picker.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-cms.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-cmyk.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-hsluv.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-hsx.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-okhsl.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-rgb.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-selector-wheel.svg
%%DATADIR%%/icons/hicolor/scalable/actions/color-tag.svg
@@ -1261,6 +1330,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/connector-orthogonal.svg
%%DATADIR%%/icons/hicolor/scalable/actions/construct-grid.svg
%%DATADIR%%/icons/hicolor/scalable/actions/copy-rotate.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/corners.svg
%%DATADIR%%/icons/hicolor/scalable/actions/curvestitching.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dashed-stroke.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-align-and-distribute.svg
@@ -1274,6 +1344,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-messages.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-object-properties.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-objects.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/dialog-paint-server.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-path-effects.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-rows-and-columns.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-scripts.svg
@@ -1284,6 +1355,16 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-tile-clones.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-transform.svg
%%DATADIR%%/icons/hicolor/scalable/actions/dialog-xml-editor.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-alt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-enhance-stroke-alt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-enhance-stroke.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-no-filter-alt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-no-filter.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-outline-alt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-outline-overlay-alt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-outline-overlay.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display-outline.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/display.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-graph-directed.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-graph.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-horizontal-baseline.svg
@@ -1301,6 +1382,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-vertical-gaps.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-vertical-node.svg
%%DATADIR%%/icons/hicolor/scalable/actions/distribute-vertical-top.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/dnd.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-cleanup.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-export.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-import-web.svg
@@ -1310,8 +1392,10 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-open.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-print.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-properties.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/document-resources.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-revert.svg
%%DATADIR%%/icons/hicolor/scalable/actions/document-save.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/draw-booleans.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-calligraphic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-connector.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-cuboid.svg
@@ -1345,6 +1429,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-trace-background.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-use-pressure.svg
%%DATADIR%%/icons/hicolor/scalable/actions/draw-use-tilt.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/edit-clear-value.svg
%%DATADIR%%/icons/hicolor/scalable/actions/edit-clone-link-lpe.svg
%%DATADIR%%/icons/hicolor/scalable/actions/edit-clone-link.svg
%%DATADIR%%/icons/hicolor/scalable/actions/edit-clone-unlink.svg
@@ -1385,6 +1470,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/exchange-positions-clockwise.svg
%%DATADIR%%/icons/hicolor/scalable/actions/exchange-positions-zorder.svg
%%DATADIR%%/icons/hicolor/scalable/actions/exchange-positions.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/experimental-outline.svg
%%DATADIR%%/icons/hicolor/scalable/actions/experimental.svg
%%DATADIR%%/icons/hicolor/scalable/actions/feBlend-icon.svg
%%DATADIR%%/icons/hicolor/scalable/actions/feColorMatrix-icon.svg
@@ -1402,12 +1488,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/feSpecularLighting-icon.svg
%%DATADIR%%/icons/hicolor/scalable/actions/feTile-icon.svg
%%DATADIR%%/icons/hicolor/scalable/actions/feTurbulence-icon.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/file-link.svg
%%DATADIR%%/icons/hicolor/scalable/actions/fill-between-many.svg
%%DATADIR%%/icons/hicolor/scalable/actions/fill-between-strokes.svg
%%DATADIR%%/icons/hicolor/scalable/actions/fill-rule-even-odd.svg
%%DATADIR%%/icons/hicolor/scalable/actions/fill-rule-nonzero.svg
%%DATADIR%%/icons/hicolor/scalable/actions/fillet-chamfer.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/flatten-down.svg
%%DATADIR%%/icons/hicolor/scalable/actions/flatten.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/font_collections.svg
%%DATADIR%%/icons/hicolor/scalable/actions/format-indent-less.svg
%%DATADIR%%/icons/hicolor/scalable/actions/format-indent-more.svg
%%DATADIR%%/icons/hicolor/scalable/actions/frmt-text-direction-horizontal.svg
@@ -1416,6 +1505,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/frmt-text-direction-vertical.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gap-random-x.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gap-random-y.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/gear.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gears.svg
%%DATADIR%%/icons/hicolor/scalable/actions/glyph-copy-from.svg
%%DATADIR%%/icons/hicolor/scalable/actions/glyph-edit.svg
@@ -1427,6 +1517,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gradient-spread-pad.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gradient-spread-reflect.svg
%%DATADIR%%/icons/hicolor/scalable/actions/gradient-spread-repeat.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/grayscale-mode.svg
%%DATADIR%%/icons/hicolor/scalable/actions/grid-axonometric.svg
%%DATADIR%%/icons/hicolor/scalable/actions/grid-rectangular.svg
%%DATADIR%%/icons/hicolor/scalable/actions/guides.svg
@@ -1463,11 +1554,18 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/layer-raise.svg
%%DATADIR%%/icons/hicolor/scalable/actions/layer-rename.svg
%%DATADIR%%/icons/hicolor/scalable/actions/layer-top.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/layout-auto.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/layout-horizontal.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/layout-vertical.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/list-add-symbolic.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/list-remove-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/lpe-connector.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/markers.svg
%%DATADIR%%/icons/hicolor/scalable/actions/matrix-2d.svg
%%DATADIR%%/icons/hicolor/scalable/actions/measure-segments.svg
%%DATADIR%%/icons/hicolor/scalable/actions/mesh-gradient-fit.svg
%%DATADIR%%/icons/hicolor/scalable/actions/mesh-gradient.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/minus.svg
%%DATADIR%%/icons/hicolor/scalable/actions/mirror-symmetry.svg
%%DATADIR%%/icons/hicolor/scalable/actions/mirroring-0000.svg
%%DATADIR%%/icons/hicolor/scalable/actions/mirroring-0001.svg
@@ -1504,6 +1602,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/node_insert_min_x.svg
%%DATADIR%%/icons/hicolor/scalable/actions/node_insert_min_y.svg
%%DATADIR%%/icons/hicolor/scalable/actions/none.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-blend-mode-normal.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-blend-mode.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-columns.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-fill.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-flip-hor.svg
@@ -1512,13 +1612,19 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-flip-vertical.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-group.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-hidden.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-level.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-locked.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-opaque.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-rotate-left.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-rotate-right.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-rows.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-select.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-stroke-style.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-stroke.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-to-path.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-translucent-blend-mode.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-translucent.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/object-transparent.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-tweak-attract.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-tweak-blur.svg
%%DATADIR%%/icons/hicolor/scalable/actions/object-tweak-duplicate.svg
@@ -1542,6 +1648,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/orient-auto.svg
%%DATADIR%%/icons/hicolor/scalable/actions/out-of-gamut-icon.svg
%%DATADIR%%/icons/hicolor/scalable/actions/overlay-clip.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/overlay-clipmask.svg
%%DATADIR%%/icons/hicolor/scalable/actions/overlay-mask.svg
%%DATADIR%%/icons/hicolor/scalable/actions/pack-less.svg
%%DATADIR%%/icons/hicolor/scalable/actions/pack-more.svg
@@ -1576,6 +1683,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-division.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-effect-parameter-next.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-exclusion.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/path-flatten.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/path-fracture.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-inset.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-intersection.svg
%%DATADIR%%/icons/hicolor/scalable/actions/path-mask-edit.svg
@@ -1598,12 +1707,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/perspective-envelope.svg
%%DATADIR%%/icons/hicolor/scalable/actions/perspective-parallel.svg
%%DATADIR%%/icons/hicolor/scalable/actions/pixelart-trace.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/plus.svg
%%DATADIR%%/icons/hicolor/scalable/actions/powerclip.svg
%%DATADIR%%/icons/hicolor/scalable/actions/powermask.svg
%%DATADIR%%/icons/hicolor/scalable/actions/powerstroke.svg
%%DATADIR%%/icons/hicolor/scalable/actions/preferences-system.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/preview-mode.svg
%%DATADIR%%/icons/hicolor/scalable/actions/pts2ellipse.svg
%%DATADIR%%/icons/hicolor/scalable/actions/randomize.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/rectangle-make-corners-round.svg
%%DATADIR%%/icons/hicolor/scalable/actions/rectangle-make-corners-sharp.svg
%%DATADIR%%/icons/hicolor/scalable/actions/remove-color.svg
%%DATADIR%%/icons/hicolor/scalable/actions/reset-settings.svg
@@ -1611,6 +1723,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/rotate-random.svg
%%DATADIR%%/icons/hicolor/scalable/actions/rough-hatches.svg
%%DATADIR%%/icons/hicolor/scalable/actions/roughen.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/rounding.svg
%%DATADIR%%/icons/hicolor/scalable/actions/rows.svg
%%DATADIR%%/icons/hicolor/scalable/actions/ruler.svg
%%DATADIR%%/icons/hicolor/scalable/actions/scale-random.svg
@@ -1644,6 +1757,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/shape-text-flow.svg
%%DATADIR%%/icons/hicolor/scalable/actions/shape-text.svg
%%DATADIR%%/icons/hicolor/scalable/actions/shape-unknown.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/shapebuilder-tool-difference.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/shapebuilder-tool-union.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-bounding-box.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-dialogs.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-grid.svg
@@ -1651,6 +1766,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-handles.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-node-handles.svg
%%DATADIR%%/icons/hicolor/scalable/actions/show-path-outline.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/show-sources.svg
%%DATADIR%%/icons/hicolor/scalable/actions/simplify.svg
%%DATADIR%%/icons/hicolor/scalable/actions/skeletal.svg
%%DATADIR%%/icons/hicolor/scalable/actions/sketch.svg
@@ -1702,6 +1818,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/scalable/actions/taper-stroke.svg
%%DATADIR%%/icons/hicolor/scalable/actions/text-convert-to-regular.svg
%%DATADIR%%/icons/hicolor/scalable/actions/text-flow-into-frame.svg
+%%DATADIR%%/icons/hicolor/scalable/actions/text-flow-subtract-frame.svg
%%DATADIR%%/icons/hicolor/scalable/actions/text-orientation-auto.svg
%%DATADIR%%/icons/hicolor/scalable/actions/text-orientation-sideways.svg
%%DATADIR%%/icons/hicolor/scalable/actions/text-orientation-upright.svg
@@ -1798,14 +1915,17 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/bspline-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/bug-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/clone-original-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/close-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-fill-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-gradient-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-management-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/color-palette-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-picker-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-cms-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-cmyk-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-hsluv-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-hsx-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-okhsl-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-rgb-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-selector-wheel-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/color-tag-symbolic.svg
@@ -1816,6 +1936,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/connector-orthogonal-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/construct-grid-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/copy-rotate-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/corners-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/curvestitching-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dashed-stroke-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg
@@ -1829,6 +1950,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-messages-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-object-properties-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-objects-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-paint-server-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-path-effects-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-rows-and-columns-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-scripts-symbolic.svg
@@ -1839,6 +1961,16 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-tile-clones-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-transform-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/dialog-xml-editor-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-alt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-enhance-stroke-alt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-enhance-stroke-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-no-filter-alt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-no-filter-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-outline-alt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-outline-overlay-alt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-outline-overlay-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-outline-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/display-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-graph-directed-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-graph-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-horizontal-baseline-symbolic.svg
@@ -1856,6 +1988,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-vertical-gaps-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-vertical-node-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/distribute-vertical-top-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/dnd-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-cleanup-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-export-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-import-symbolic.svg
@@ -1865,8 +1998,10 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-open-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-print-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-properties-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/document-resources-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-revert-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/document-save-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/draw-booleans-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-calligraphic-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-connector-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-cuboid-symbolic.svg
@@ -1900,6 +2035,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-trace-background-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-use-pressure-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/draw-use-tilt-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/edit-clear-value-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/edit-clone-link-lpe-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/edit-clone-link-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/edit-clone-symbolic.svg
@@ -1940,6 +2076,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/exchange-positions-clockwise-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/exchange-positions-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/exchange-positions-zorder-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/experimental-outline-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/experimental-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/feBlend-icon-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/feColorMatrix-icon-symbolic.svg
@@ -1957,12 +2094,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/feSpecularLighting-icon-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/feTile-icon-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/feTurbulence-icon-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/file-link-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/fill-between-many-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/fill-between-strokes-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/fill-rule-even-odd-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/fill-rule-nonzero-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/fillet-chamfer-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/flatten-down-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/flatten-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/font_collections-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/format-indent-less-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/format-indent-more-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/frmt-text-direction-horizontal-symbolic.svg
@@ -1971,6 +2111,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/frmt-text-direction-vertical-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gap-random-x-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gap-random-y-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/gear-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gears-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/glyph-copy-from-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/glyph-edit-symbolic.svg
@@ -1982,6 +2123,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gradient-spread-pad-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gradient-spread-reflect-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/gradient-spread-repeat-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/grayscale-mode-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/grid-axonometric-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/grid-rectangular-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/guides-symbolic.svg
@@ -2018,11 +2160,18 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/layer-raise-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/layer-rename-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/layer-top-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/layout-auto-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/layout-horizontal-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/layout-vertical-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/list-add-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/list-remove-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/lpe-connector-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/markers-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/matrix-2d-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/measure-segments-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/mesh-gradient-fit-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/mesh-gradient-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/minus-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/mirror-symmetry-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/mirroring-0000-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/mirroring-0001-symbolic.svg
@@ -2059,6 +2208,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/node_insert_min_x-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/node_insert_min_y-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/none-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-blend-mode-normal-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-blend-mode-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-columns-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-fill-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-flip-hor-symbolic.svg
@@ -2067,13 +2218,19 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-flip-vertical-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-group-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-hidden-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-level-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-locked-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-opaque-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-rotate-left-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-rotate-right-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-rows-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-select-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-stroke-style-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-stroke-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-to-path-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-translucent-blend-mode-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-translucent-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/object-transparent-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-tweak-attract-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-tweak-blur-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/object-tweak-duplicate-symbolic.svg
@@ -2097,6 +2254,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/orient-auto-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/out-of-gamut-icon-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/overlay-clip-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/overlay-clipmask-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/overlay-mask-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/pack-less-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/pack-more-symbolic.svg
@@ -2131,6 +2289,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-division-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-effect-parameter-next-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-exclusion-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/path-flatten-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/path-fracture-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-inset-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-intersection-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/path-mask-edit-symbolic.svg
@@ -2153,12 +2313,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/perspective-envelope-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/perspective-parallel-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/pixelart-trace-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/plus-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/powerclip-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/powermask-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/powerstroke-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/preferences-system-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/preview-mode-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/pts2ellipse-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/randomize-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/rectangle-make-corners-round-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/rectangle-make-corners-sharp-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/remove-color-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/reset-settings-symbolic.svg
@@ -2166,6 +2329,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/rotate-random-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/rough-hatches-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/roughen-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/rounding-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/rows-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/ruler-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/scale-random-symbolic.svg
@@ -2199,6 +2363,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/shape-text-flow-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/shape-text-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/shape-unknown-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/shapebuilder-tool-difference-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/shapebuilder-tool-union-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-bounding-box-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-dialogs-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-grid-symbolic.svg
@@ -2206,6 +2372,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-handles-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-node-handles-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/show-path-outline-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/show-sources-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/simplify-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/skeletal-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/sketch-symbolic.svg
@@ -2257,6 +2424,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/taper-stroke-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/text-convert-to-regular-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/text-flow-into-frame-symbolic.svg
+%%DATADIR%%/icons/hicolor/symbolic/actions/text-flow-subtract-frame-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/text-orientation-auto-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/text-orientation-sideways-symbolic.svg
%%DATADIR%%/icons/hicolor/symbolic/actions/text-orientation-upright-symbolic.svg
@@ -2360,14 +2528,17 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/bspline-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/bug-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/clone-original-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/close-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-fill-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-gradient-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-management-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/color-palette-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-picker-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-cms-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-cmyk-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-hsluv-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-hsx-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-okhsl-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-rgb-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-selector-wheel-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/color-tag-symbolic.svg
@@ -2378,6 +2549,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/connector-orthogonal-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/construct-grid-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/copy-rotate-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/corners-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/curvestitching-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dashed-stroke-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-align-and-distribute-symbolic.svg
@@ -2391,6 +2563,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-messages-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-object-properties-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-objects-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-paint-server-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-path-effects-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-rows-and-columns-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-scripts-symbolic.svg
@@ -2401,6 +2574,16 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-tile-clones-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-transform-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/dialog-xml-editor-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-alt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-enhance-stroke-alt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-enhance-stroke-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-no-filter-alt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-no-filter-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-outline-alt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-outline-overlay-alt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-outline-overlay-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-outline-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/display-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-graph-directed-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-graph-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-horizontal-baseline-symbolic.svg
@@ -2418,6 +2601,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-vertical-gaps-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-vertical-node-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/distribute-vertical-top-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/dnd-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-cleanup-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-export-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-import-symbolic.svg
@@ -2427,8 +2611,10 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-open-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-print-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-properties-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/document-resources-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-revert-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/document-save-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/draw-booleans-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-calligraphic-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-connector-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-cuboid-symbolic.svg
@@ -2462,6 +2648,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-trace-background-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-use-pressure-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/draw-use-tilt-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/edit-clear-value-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/edit-clone-link-lpe-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/edit-clone-link-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/edit-clone-symbolic.svg
@@ -2502,6 +2689,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/exchange-positions-clockwise-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/exchange-positions-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/exchange-positions-zorder-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/experimental-outline-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/experimental-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/feBlend-icon-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/feColorMatrix-icon-symbolic.svg
@@ -2519,12 +2707,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/feSpecularLighting-icon-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/feTile-icon-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/feTurbulence-icon-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/file-link-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/fill-between-many-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/fill-between-strokes-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/fill-rule-even-odd-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/fill-rule-nonzero-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/fillet-chamfer-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/flatten-down-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/flatten-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/font_collections-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/format-indent-less-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/format-indent-more-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/frmt-text-direction-horizontal-symbolic.svg
@@ -2533,6 +2724,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/frmt-text-direction-vertical-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gap-random-x-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gap-random-y-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/gear-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gears-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/glyph-copy-from-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/glyph-edit-symbolic.svg
@@ -2544,6 +2736,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gradient-spread-pad-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gradient-spread-reflect-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/gradient-spread-repeat-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/grayscale-mode-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/grid-axonometric-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/grid-rectangular-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/guides-symbolic.svg
@@ -2580,11 +2773,18 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/layer-raise-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/layer-rename-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/layer-top-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/layout-auto-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/layout-horizontal-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/layout-vertical-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/list-add-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/list-remove-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/lpe-connector-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/markers-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/matrix-2d-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/measure-segments-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/mesh-gradient-fit-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/mesh-gradient-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/minus-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/mirror-symmetry-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/mirroring-0000-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/mirroring-0001-symbolic.svg
@@ -2621,6 +2821,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/node_insert_min_x-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/node_insert_min_y-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/none-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-blend-mode-normal-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-blend-mode-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-columns-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-fill-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-flip-hor-symbolic.svg
@@ -2629,13 +2831,19 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-flip-vertical-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-group-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-hidden-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-level-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-locked-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-opaque-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-rotate-left-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-rotate-right-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-rows-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-select-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-stroke-style-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-stroke-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-to-path-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-translucent-blend-mode-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-translucent-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/object-transparent-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-tweak-attract-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-tweak-blur-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/object-tweak-duplicate-symbolic.svg
@@ -2659,6 +2867,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/orient-auto-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/out-of-gamut-icon-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/overlay-clip-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/overlay-clipmask-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/overlay-mask-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/pack-less-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/pack-more-symbolic.svg
@@ -2693,6 +2902,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-division-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-effect-parameter-next-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-exclusion-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/path-flatten-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/path-fracture-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-inset-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-intersection-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/path-mask-edit-symbolic.svg
@@ -2715,12 +2926,15 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/perspective-envelope-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/perspective-parallel-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/pixelart-trace-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/plus-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/powerclip-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/powermask-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/powerstroke-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/preferences-system-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/preview-mode-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/pts2ellipse-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/randomize-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/rectangle-make-corners-round-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/rectangle-make-corners-sharp-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/remove-color-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/reset-settings-symbolic.svg
@@ -2728,6 +2942,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/rotate-random-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/rough-hatches-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/roughen-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/rounding-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/rows-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/ruler-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/scale-random-symbolic.svg
@@ -2761,6 +2976,8 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/shape-text-flow-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/shape-text-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/shape-unknown-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/shapebuilder-tool-difference-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/shapebuilder-tool-union-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-bounding-box-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-dialogs-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-grid-symbolic.svg
@@ -2768,6 +2985,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-handles-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-node-handles-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/show-path-outline-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/show-sources-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/simplify-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/skeletal-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/sketch-symbolic.svg
@@ -2819,6 +3037,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/taper-stroke-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/text-convert-to-regular-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/text-flow-into-frame-symbolic.svg
+%%DATADIR%%/icons/multicolor/symbolic/actions/text-flow-subtract-frame-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/text-orientation-auto-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/text-orientation-sideways-symbolic.svg
%%DATADIR%%/icons/multicolor/symbolic/actions/text-orientation-upright-symbolic.svg
@@ -2891,9 +3110,17 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/keys/xara.xml
%%DATADIR%%/keys/zoner-draw.xml
%%DATADIR%%/markers/markers.svg
+%%DATADIR%%/paint/Asian patterns.svg
+%%DATADIR%%/paint/Decoratives.svg
+%%DATADIR%%/paint/Geometrical.svg
+%%DATADIR%%/paint/Grids.svg
+%%DATADIR%%/paint/Halftones.svg
+%%DATADIR%%/paint/Nature patterns.svg
+%%DATADIR%%/paint/Patterns.svg
%%DATADIR%%/paint/README
+%%DATADIR%%/paint/Shading.svg
+%%DATADIR%%/paint/Textures.svg
%%DATADIR%%/paint/hatches.svg
-%%DATADIR%%/paint/patterns.svg
%%DATADIR%%/palettes/Android-icon-palette.gpl
%%DATADIR%%/palettes/Blues.gpl
%%DATADIR%%/palettes/Bootstrap5.gpl
@@ -2909,6 +3136,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/palettes/README
%%DATADIR%%/palettes/Reds.gpl
%%DATADIR%%/palettes/Royal.gpl
+%%DATADIR%%/palettes/Solarized.gpl
%%DATADIR%%/palettes/Tango-Palette.gpl
%%DATADIR%%/palettes/Topographic.gpl
%%DATADIR%%/palettes/Ubuntu.gpl
@@ -2922,6 +3150,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/pixmaps/README
%%DATADIR%%/pixmaps/inkscape-logo-icons-sized.svg
%%DATADIR%%/pixmaps/inkscape.svg
+%%DATADIR%%/pixmaps/preview_loading.svg
%%DATADIR%%/pixmaps/remove-color.png
%%DATADIR%%/pixmaps/support.png
%%DATADIR%%/pixmaps/symbolic_icons.svg
@@ -2931,25 +3160,7 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/screens/about.svg
%%DATADIR%%/screens/start-splash.png
%%DATADIR%%/screens/start-support.png
-%%DATADIR%%/screens/start-welcome-text.ca.svg
-%%DATADIR%%/screens/start-welcome-text.cs.svg
-%%DATADIR%%/screens/start-welcome-text.de.svg
-%%DATADIR%%/screens/start-welcome-text.es.svg
-%%DATADIR%%/screens/start-welcome-text.fr.svg
-%%DATADIR%%/screens/start-welcome-text.hu.svg
-%%DATADIR%%/screens/start-welcome-text.is.svg
-%%DATADIR%%/screens/start-welcome-text.it.svg
-%%DATADIR%%/screens/start-welcome-text.ja.svg
-%%DATADIR%%/screens/start-welcome-text.pl.svg
-%%DATADIR%%/screens/start-welcome-text.pt.svg
-%%DATADIR%%/screens/start-welcome-text.pt_BR.svg
-%%DATADIR%%/screens/start-welcome-text.ru.svg
-%%DATADIR%%/screens/start-welcome-text.sk.svg
-%%DATADIR%%/screens/start-welcome-text.sl.svg
%%DATADIR%%/screens/start-welcome-text.svg
-%%DATADIR%%/screens/start-welcome-text.uk.svg
-%%DATADIR%%/screens/start-welcome-text.zh_CN.svg
-%%DATADIR%%/screens/start-welcome-text.zh_TW.svg
%%DATADIR%%/screens/start-welcome.png
%%DATADIR%%/symbols/AigaSymbols.svg
%%DATADIR%%/symbols/BalloonSymbols.svg
@@ -2957,6 +3168,22 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/symbols/LogicSymbols.svg
%%DATADIR%%/symbols/MapSymbolsNPS.svg
%%DATADIR%%/symbols/README
+%%DATADIR%%/symbols/sjjb-accommodation.svg
+%%DATADIR%%/symbols/sjjb-amenity.svg
+%%DATADIR%%/symbols/sjjb-barrier.svg
+%%DATADIR%%/symbols/sjjb-education.svg
+%%DATADIR%%/symbols/sjjb-food.svg
+%%DATADIR%%/symbols/sjjb-health.svg
+%%DATADIR%%/symbols/sjjb-landuse.svg
+%%DATADIR%%/symbols/sjjb-money.svg
+%%DATADIR%%/symbols/sjjb-poi.svg
+%%DATADIR%%/symbols/sjjb-power.svg
+%%DATADIR%%/symbols/sjjb-shopping.svg
+%%DATADIR%%/symbols/sjjb-sport.svg
+%%DATADIR%%/symbols/sjjb-tourist.svg
+%%DATADIR%%/symbols/sjjb-transport.svg
+%%DATADIR%%/symbols/sjjb-water.svg
+%%DATADIR%%/symbols/sjjb-worship.svg
%%DATADIR%%/templates/A4leaflet-3fold-Roll.svg
%%DATADIR%%/templates/CD_label_120x120.svg
%%DATADIR%%/templates/LaTeX_Beamer.svg
@@ -3037,6 +3264,32 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%NLS%%%%DATADIR%%/templates/default.zh_TW.svg
%%NLS%%%%DATADIR%%/templates/default_pt.svg
%%NLS%%%%DATADIR%%/templates/default_px.svg
+%%DATADIR%%/templates/icons/about.svg
+%%DATADIR%%/templates/icons/custom.svg
+%%DATADIR%%/templates/icons/default.svg
+%%DATADIR%%/templates/icons/desktop_hd_landscape.svg
+%%DATADIR%%/templates/icons/desktop_landscape.svg
+%%DATADIR%%/templates/icons/envelope_landscape.svg
+%%DATADIR%%/templates/icons/envelope_portrait.svg
+%%DATADIR%%/templates/icons/icon_square.svg
+%%DATADIR%%/templates/icons/image_landscape.svg
+%%DATADIR%%/templates/icons/image_portrait.svg
+%%DATADIR%%/templates/icons/image_square.svg
+%%DATADIR%%/templates/icons/mobile_portrait.svg
+%%DATADIR%%/templates/icons/photo_landscape.svg
+%%DATADIR%%/templates/icons/photo_portrait.svg
+%%DATADIR%%/templates/icons/photo_square.svg
+%%DATADIR%%/templates/icons/print_US_landscape.svg
+%%DATADIR%%/templates/icons/print_US_portrait.svg
+%%DATADIR%%/templates/icons/print_landscape.svg
+%%DATADIR%%/templates/icons/print_portrait.svg
+%%DATADIR%%/templates/icons/social_landscape.svg
+%%DATADIR%%/templates/icons/social_portrait.svg
+%%DATADIR%%/templates/icons/social_square.svg
+%%DATADIR%%/templates/icons/tablet_landscape.svg
+%%DATADIR%%/templates/icons/video_landscape.svg
+%%DATADIR%%/templates/icons/video_portrait.svg
+%%DATADIR%%/templates/icons/video_square.svg
%%NLS%%%%DATADIR%%/templates/no_layers.svg
%%DATADIR%%/themes/LICENSE.txt
%%DATADIR%%/themes/Minwaita-Inkscape/gtk-3.0/assets/bullet-symbolic.symbolic.png
@@ -3201,9 +3454,11 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/tutorials/edge3d.svg
%%DATADIR%%/tutorials/making_markers.svg
%%DATADIR%%/tutorials/oldguitar.jpg
+%%DATADIR%%/tutorials/pixelart-dialog.de.png
%%DATADIR%%/tutorials/pixelart-dialog.el.png
%%DATADIR%%/tutorials/pixelart-dialog.hu.png
%%DATADIR%%/tutorials/pixelart-dialog.png
+%%DATADIR%%/tutorials/potrace.de.png
%%DATADIR%%/tutorials/potrace.el.png
%%DATADIR%%/tutorials/potrace.es.png
%%DATADIR%%/tutorials/potrace.eu.png
@@ -3458,33 +3713,6 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/ui/resources/canvas_cd.png
%%DATADIR%%/ui/resources/canvas_cw.png
%%DATADIR%%/ui/resources/canvas_sw.png
-%%DATADIR%%/ui/resources/template_about.svg
-%%DATADIR%%/ui/resources/template_businesscard_landscape.svg
-%%DATADIR%%/ui/resources/template_businesscard_portrait.svg
-%%DATADIR%%/ui/resources/template_businesscard_square.svg
-%%DATADIR%%/ui/resources/template_desktop_hd_landscape.svg
-%%DATADIR%%/ui/resources/template_desktop_landscape.svg
-%%DATADIR%%/ui/resources/template_envelope_landscape.svg
-%%DATADIR%%/ui/resources/template_envelope_portrait.svg
-%%DATADIR%%/ui/resources/template_icon_square.svg
-%%DATADIR%%/ui/resources/template_image_landscape.svg
-%%DATADIR%%/ui/resources/template_image_portrait.svg
-%%DATADIR%%/ui/resources/template_image_square.svg
-%%DATADIR%%/ui/resources/template_mobile_portrait.svg
-%%DATADIR%%/ui/resources/template_photo_landscape.svg
-%%DATADIR%%/ui/resources/template_photo_portrait.svg
-%%DATADIR%%/ui/resources/template_photo_square.svg
-%%DATADIR%%/ui/resources/template_print_US_landscape.svg
-%%DATADIR%%/ui/resources/template_print_US_portrait.svg
-%%DATADIR%%/ui/resources/template_print_landscape.svg
-%%DATADIR%%/ui/resources/template_print_portrait.svg
-%%DATADIR%%/ui/resources/template_social_landscape.svg
-%%DATADIR%%/ui/resources/template_social_portrait.svg
-%%DATADIR%%/ui/resources/template_social_square.svg
-%%DATADIR%%/ui/resources/template_tablet_landscape.svg
-%%DATADIR%%/ui/resources/template_video_landscape.svg
-%%DATADIR%%/ui/resources/template_video_portrait.svg
-%%DATADIR%%/ui/resources/template_video_square.svg
%%DATADIR%%/ui/spinbutton.css
%%DATADIR%%/ui/style.css
%%DATADIR%%/ui/toolbar-commands.ui
@@ -3496,6 +3724,34 @@ share/icons/hicolor/symbolic/apps/org.inkscape.Inkscape-symbolic.svg
%%DATADIR%%/ui/toolbar-zoom.ui
%%DATADIR%%/ui/units.xml
%%DATADIR%%/ui/win32.css
+%%DATADIR%%/ui/attribute-edit-component.glade
+%%DATADIR%%/ui/canvas-notice.glade
+%%DATADIR%%/ui/completion-box.glade
+%%DATADIR%%/ui/default-dialog-state.ini
+%%DATADIR%%/ui/dialog-crash.glade
+%%DATADIR%%/ui/dialog-document-resources.glade
+%%DATADIR%%/ui/dialog-export-prefs.glade
+%%DATADIR%%/ui/dialog-font-collections.glade
+%%DATADIR%%/ui/dialog-livepatheffect-item.glade
+%%DATADIR%%/ui/dialog-livepatheffect.glade
+%%DATADIR%%/ui/dialog-objects.glade
+%%DATADIR%%/ui/dialog-paint-servers.glade
+%%DATADIR%%/ui/dialog-symbols.glade
+%%DATADIR%%/ui/dialog-xml.glade
+%%DATADIR%%/ui/display-popup.glade
+%%DATADIR%%/ui/extension-pdfinput.glade
+%%DATADIR%%/ui/image-properties.glade
+%%DATADIR%%/ui/inline-css.lang
+%%DATADIR%%/ui/object-attributes.glade
+%%DATADIR%%/ui/pattern-edit.glade
+%%DATADIR%%/ui/svgd.lang
+%%DATADIR%%/ui/svgpoints.lang
+%%DATADIR%%/ui/syntax-themes/syntax-theme-dark.xml
+%%DATADIR%%/ui/syntax-themes/syntax-theme-light.xml
+%%DATADIR%%/ui/syntax-themes/syntax-theme-none.xml
+%%DATADIR%%/ui/toolbar-booleans.ui
+%%DATADIR%%/ui/user.css
+%%DATADIR%%/ui/widget-new-from-template.ui
%%NLS%%share/locale/ar/LC_MESSAGES/inkscape.mo
%%NLS%%share/locale/as/LC_MESSAGES/inkscape.mo
%%NLS%%share/locale/az/LC_MESSAGES/inkscape.mo
@@ -3589,13 +3845,20 @@ share/man/de/man1/inkview.1.gz
share/man/es/man1/inkview.1.gz
share/man/fr/man1/inkscape.1.gz
share/man/fr/man1/inkview.1.gz
-share/man/hr/man1/inkscape.1.gz
share/man/hr/man1/inkview.1.gz
share/man/hu/man1/inkscape.1.gz
share/man/hu/man1/inkview.1.gz
+share/man/ko/man1/inkscape.1.gz
+share/man/ko/man1/inkview.1.gz
share/man/man1/inkscape.1.gz
share/man/man1/inkview.1.gz
share/man/pt_BR/man1/inkview.1.gz
share/man/zh_TW/man1/inkscape.1.gz
share/man/zh_TW/man1/inkview.1.gz
share/metainfo/org.inkscape.Inkscape.appdata.xml
+@dir %%DATADIR%%/extensions/inkex/__pycache__
+@dir %%DATADIR%%/extensions/inkex/deprecated/__pycache__
+@dir %%DATADIR%%/extensions/inkex/elements/__pycache__
+@dir %%DATADIR%%/extensions/inkex/interfaces/__pycache__
+@dir %%DATADIR%%/extensions/other/extension-xaml/inkxaml/__pycache__
+@dir %%DATADIR%%/extensions/other/extension-xaml/inkxaml/export/__pycache__
diff --git a/math/lib2geom/Makefile b/math/lib2geom/Makefile
index 0bb630c64210..0478c78c26c9 100644
--- a/math/lib2geom/Makefile
+++ b/math/lib2geom/Makefile
@@ -1,25 +1,42 @@
PORTNAME= lib2geom
-DISTVERSION= 1.2.2
+DISTVERSION= 1.3
CATEGORIES= math gnome
MAINTAINER= gnome@FreeBSD.org
COMMENT= Easy to use 2D geometry library in C++
WWW= https://gitlab.com/inkscape/lib2geom
-BUILD_DEPENDS= googletest>0:devel/googletest
+LICENSE= LGPL21 MPL11
+LICENSE_COMB= dual
+LICENSE_FILE_LGPL21= ${WRKSRC}/COPYING-LGPL-2.1
+LICENSE_FILE_MPL11= ${WRKSRC}/COPYING-MPL-1.1
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR} \
+ ragel:devel/ragel \
+ googletest>0:devel/googletest
LIB_DEPENDS= libdouble-conversion.so:devel/double-conversion \
libgsl.so:math/gsl \
libboost_thread.so:devel/boost-libs
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR}
+TEST_DEPENDS= googletest>0:devel/googletest \
+ ragel:devel/ragel
-USES= cmake gettext-runtime gnome localbase:ldflags pkgconfig
-USE_GITLAB= yes
-USE_GNOME= cairo glib20
+USES= cmake:testing gettext-runtime gnome localbase:ldflags pkgconfig \
+ python
+USE_GNOME= cairo glib20 gtk30
+USE_PYTHON= cython cython_test
+USE_GITLAB= yes
GL_ACCOUNT= inkscape
-GL_TAGNAME= a84a73ebdae50cc729f57d1ffb788aeaef0f746c
-CMAKE_ON= 2GEOM_BUILD_SHARED
+CMAKE_ON= 2GEOM_BUILD_SHARED \
+ 2GEOM_TESTING
+
+PLIST_SUB= VERSION=${PORTVERSION}.0
+
+OPTIONS_DEFINE= GPL
-PLIST_SUB= VERSION=${PORTVERSION}
+GPL_DESC= Build with GPL-licensed code
+GPL_CMAKE_BOOL= 2GEOM_USE_GPL_CODE
.include <bsd.port.mk>
diff --git a/math/lib2geom/distinfo b/math/lib2geom/distinfo
index 99e2a9389689..2efb57e01baa 100644
--- a/math/lib2geom/distinfo
+++ b/math/lib2geom/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1670507287
-SHA256 (inkscape-lib2geom-a84a73ebdae50cc729f57d1ffb788aeaef0f746c_GL0.tar.gz) = 3a5b38cfb611290f45475b21e8d556d80640eeee231ed588bef3d6945aedadd0
-SIZE (inkscape-lib2geom-a84a73ebdae50cc729f57d1ffb788aeaef0f746c_GL0.tar.gz) = 1397606
+TIMESTAMP = 1692190492
+SHA256 (lib2geom-1.3.tar.bz2) = bd07f2a1322fcad16a55a1901207faa55dffdecebc56a00eabd4575f62e043c9
+SIZE (lib2geom-1.3.tar.bz2) = 1275751
diff --git a/math/lib2geom/pkg-plist b/math/lib2geom/pkg-plist
index 0fcafce35259..1abe03c04e64 100644
--- a/math/lib2geom/pkg-plist
+++ b/math/lib2geom/pkg-plist
@@ -93,5 +93,5 @@ lib/cmake/2Geom/2GeomConfigVersion.cmake
lib/cmake/2Geom/2GeomTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/2Geom/2GeomTargets.cmake
lib/lib2geom.so
-lib/lib2geom.so.1.2.0
+lib/lib2geom.so.%%VERSION%%
libdata/pkgconfig/2geom.pc