[gnome-text-editor] app: use scheme metadata for light/dark variants
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-text-editor] app: use scheme metadata for light/dark variants
- Date: Thu, 2 Dec 2021 20:36:38 +0000 (UTC)
commit 8ce952c46d43e780956a6305a7c65a10865b69fd
Author: Christian Hergert <chergert redhat com>
Date: Thu Dec 2 12:36:32 2021 -0800
app: use scheme metadata for light/dark variants
If the scheme provides metadata, we want to use that instead of the
-light/-dark guessing.
Related #139
src/editor-application.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
---
diff --git a/src/editor-application.c b/src/editor-application.c
index 5d63b9f..6e615c0 100644
--- a/src/editor-application.c
+++ b/src/editor-application.c
@@ -489,12 +489,26 @@ _gtk_source_style_scheme_get_variant (GtkSourceStyleScheme *scheme,
GtkSourceStyleSchemeManager *style_scheme_manager;
GtkSourceStyleScheme *ret;
g_autoptr(GString) str = NULL;
+ g_autofree char *key = NULL;
+ const char *mapping;
g_return_val_if_fail (GTK_SOURCE_IS_STYLE_SCHEME (scheme), NULL);
g_return_val_if_fail (g_strcmp0 (variant, "light") == 0 ||
g_strcmp0 (variant, "dark") == 0, NULL);
style_scheme_manager = gtk_source_style_scheme_manager_get_default ();
+
+ /* If the scheme provides "light-variant" or "dark-variant" metadata,
+ * we will prefer those if the variant is available.
+ */
+ key = g_strdup_printf ("%s-variant", variant);
+ if ((mapping = gtk_source_style_scheme_get_metadata (scheme, key)))
+ {
+ if ((ret = gtk_source_style_scheme_manager_get_scheme (style_scheme_manager, mapping)))
+ return ret;
+ }
+
+ /* Try to find a match by replacing -light/-dark with @variant */
str = g_string_new (gtk_source_style_scheme_get_id (scheme));
if (g_str_has_suffix (str->str, "-light"))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]