From 488251423400568882b81c5ced051f7dcb1b8d2e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 10 Jan 2024 21:08:33 -0500 Subject: [PATCH] node-editor: Make test fonts available Add the directory containing test fonts for gsk tests to the font configuration, so that node files from the testsuite using these fonts just work. --- demos/node-editor/node-editor-application.c | 42 ++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/demos/node-editor/node-editor-application.c b/demos/node-editor/node-editor-application.c index 10086e4937..d136e406e0 100644 --- a/demos/node-editor/node-editor-application.c +++ b/demos/node-editor/node-editor-application.c @@ -19,6 +19,10 @@ #include "config.h" +#ifdef HAVE_PANGOFT +#include +#endif + #include "node-editor-application.h" #include "node-editor-window.h" @@ -45,11 +49,47 @@ struct _NodeEditorApplicationClass GtkApplicationClass parent_class; }; -G_DEFINE_TYPE(NodeEditorApplication, node_editor_application, GTK_TYPE_APPLICATION); +G_DEFINE_TYPE (NodeEditorApplication, node_editor_application, GTK_TYPE_APPLICATION); + +static void +maybe_add_test_fonts (void) +{ +#ifdef HAVE_PANGOFT + const char *subdir = "testsuite/gsk/fonts"; + const char *source_dir; + char *dir; + + source_dir = g_getenv ("GTK_SOURCE_DIR"); + + if (source_dir) + { + char *abs_source_dir = g_canonicalize_filename (source_dir, NULL); + dir = g_canonicalize_filename (subdir, abs_source_dir); + g_free (abs_source_dir); + } + else + { + char *current_dir = g_get_current_dir (); + dir = g_canonicalize_filename (subdir, current_dir); + g_free (current_dir); + } + + if (g_file_test (dir, G_FILE_TEST_EXISTS)) + { + FcConfig *config; + + config = FcConfigGetCurrent (); + FcConfigAppFontAddDir (config, (const FcChar8 *) dir); + } + + g_free (dir); +#endif +} static void node_editor_application_init (NodeEditorApplication *app) { + maybe_add_test_fonts (); } static void