[gtk/theme-reorg] Make theme fallback working with the new names
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/theme-reorg] Make theme fallback working with the new names
- Date: Fri, 2 Apr 2021 02:08:05 +0000 (UTC)
commit fd329e0ec582d7562f444bf792909906d41a7e5a
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Apr 1 22:02:38 2021 -0400
Make theme fallback working with the new names
Since we are likely going to see theme names like
Adwaita and HighContrast, make fallback work as follows:
Adwaita -> Default
Adwaita:dark -> Default:dark
HighContrast -> Default:hc
HighContrast:dark -> Default:hc-dark
HighContrastInverse -> Default:hc-dark
Other themes will fall back to Default, as before.
gtk/gtkcssprovider.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 43882cf385..56b243f1c1 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -1385,16 +1385,20 @@ gtk_css_provider_load_named (GtkCssProvider *provider,
else
{
/* Things failed! Fall back! Fall back! */
-
- if (variant)
+ if (strcmp (name, "HighContrast") == 0)
{
- /* If there was a variant, try without */
- gtk_css_provider_load_named (provider, name, NULL);
+ if (g_strcmp0 (variant, "dark") == 0)
+ gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, "hc-dark");
+ else
+ gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, "hc");
}
+ else if (strcmp (name, "HighConstrastInverse") == 0)
+ gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, "hc-dark");
+ else if (strcmp (name, DEFAULT_THEME_NAME) != 0)
+ gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, variant);
else
{
- /* Worst case, fall back to the default */
- g_return_if_fail (!g_str_equal (name, DEFAULT_THEME_NAME)); /* infloop protection */
+ g_return_if_fail (variant != NULL);
gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, NULL);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]