[gtk] cssprovider: Export correct API
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] cssprovider: Export correct API
- Date: Thu, 18 Apr 2019 00:29:17 +0000 (UTC)
commit 1aa16106115e957dadf2f23a7a8ff1699bd30b7d
Author: Benjamin Otte <otte redhat com>
Date: Thu Apr 18 02:05:58 2019 +0200
cssprovider: Export correct API
gtk_css_provider_get_named() is the old GTK3 style API to load themes.
Instead, export the function we currently use,
gtk_css_provider_load_named().
As a side effect we allow people to load a theme as often as they want
without conflicting with GTK's theme.
docs/reference/gtk/gtk4-sections.txt | 2 +-
gtk/gtkcssprovider.c | 54 +++++-------------------------------
gtk/gtkcssprovider.h | 5 ++--
gtk/gtkcssproviderprivate.h | 4 ---
gtk/gtksettings.c | 5 ++--
5 files changed, 14 insertions(+), 56 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 458085c57e..96d08652dd 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5076,7 +5076,7 @@ gtk_border_get_type
<FILE>gtkcssprovider</FILE>
<TITLE>GtkCssProvider</TITLE>
GtkCssProvider
-gtk_css_provider_get_named
+gtk_css_provider_load_named
gtk_css_provider_load_from_data
gtk_css_provider_load_from_file
gtk_css_provider_load_from_path
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 1e841fb2f3..50a7bf80a4 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -1342,7 +1342,7 @@ _gtk_css_find_theme (const gchar *name,
}
/**
- * _gtk_css_provider_load_named:
+ * gtk_css_provider_load_named:
* @provider: a #GtkCssProvider
* @name: A theme name
* @variant: (allow-none): variant to load, for example, "dark", or
@@ -1351,12 +1351,12 @@ _gtk_css_find_theme (const gchar *name,
* Loads a theme from the usual theme paths. The actual process of
* finding the theme might change between releases, but it is
* guaranteed that this function uses the same mechanism to load the
- * theme than GTK uses for loading its own theme.
+ * theme that GTK uses for loading its own theme.
**/
void
-_gtk_css_provider_load_named (GtkCssProvider *provider,
- const gchar *name,
- const gchar *variant)
+gtk_css_provider_load_named (GtkCssProvider *provider,
+ const gchar *name,
+ const gchar *variant)
{
gchar *path;
gchar *resource_path;
@@ -1413,57 +1413,17 @@ _gtk_css_provider_load_named (GtkCssProvider *provider,
if (variant)
{
/* If there was a variant, try without */
- _gtk_css_provider_load_named (provider, name, NULL);
+ gtk_css_provider_load_named (provider, name, NULL);
}
else
{
/* Worst case, fall back to the default */
g_return_if_fail (!g_str_equal (name, DEFAULT_THEME_NAME)); /* infloop protection */
- _gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, NULL);
+ gtk_css_provider_load_named (provider, DEFAULT_THEME_NAME, NULL);
}
}
}
-/**
- * gtk_css_provider_get_named:
- * @name: A theme name
- * @variant: (allow-none): variant to load, for example, "dark", or
- * %NULL for the default
- *
- * Loads a theme from the usual theme paths
- *
- * Returns: (transfer none): a #GtkCssProvider with the theme loaded.
- * This memory is owned by GTK+, and you must not free it.
- */
-GtkCssProvider *
-gtk_css_provider_get_named (const gchar *name,
- const gchar *variant)
-{
- static GHashTable *themes = NULL;
- GtkCssProvider *provider;
- gchar *key;
-
- if (variant == NULL)
- key = g_strdup (name);
- else
- key = g_strconcat (name, "-", variant, NULL);
- if (G_UNLIKELY (!themes))
- themes = g_hash_table_new (g_str_hash, g_str_equal);
-
- provider = g_hash_table_lookup (themes, key);
-
- if (!provider)
- {
- provider = gtk_css_provider_new ();
- _gtk_css_provider_load_named (provider, name, variant);
- g_hash_table_insert (themes, g_strdup (key), provider);
- }
-
- g_free (key);
-
- return provider;
-}
-
static int
compare_properties (gconstpointer a, gconstpointer b, gpointer style)
{
diff --git a/gtk/gtkcssprovider.h b/gtk/gtkcssprovider.h
index 9f05714173..051305e573 100644
--- a/gtk/gtkcssprovider.h
+++ b/gtk/gtkcssprovider.h
@@ -78,8 +78,9 @@ void gtk_css_provider_load_from_resource (GtkCssProvider *css_provid
const gchar *resource_path);
GDK_AVAILABLE_IN_ALL
-GtkCssProvider * gtk_css_provider_get_named (const gchar *name,
- const gchar *variant);
+void gtk_css_provider_load_named (GtkCssProvider *self,
+ const char *name,
+ const char *variant);
G_END_DECLS
diff --git a/gtk/gtkcssproviderprivate.h b/gtk/gtkcssproviderprivate.h
index bca8e79464..e345d00120 100644
--- a/gtk/gtkcssproviderprivate.h
+++ b/gtk/gtkcssproviderprivate.h
@@ -26,10 +26,6 @@ gchar *_gtk_get_theme_dir (void);
const gchar *_gtk_css_provider_get_theme_dir (GtkCssProvider *provider);
-void _gtk_css_provider_load_named (GtkCssProvider *provider,
- const gchar *name,
- const gchar *variant);
-
void gtk_css_provider_set_keep_css_sections (void);
G_END_DECLS
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 354e70a083..79282b1804 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -2215,8 +2215,9 @@ settings_update_theme (GtkSettings *settings)
get_theme_name (settings, &theme_name, &theme_variant);
- _gtk_css_provider_load_named (priv->theme_provider,
- theme_name, theme_variant);
+ gtk_css_provider_load_named (priv->theme_provider,
+ theme_name,
+ theme_variant);
/* reload per-theme settings */
theme_dir = _gtk_css_provider_get_theme_dir (priv->theme_provider);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]