summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/gtk/gtk4-sections.txt1
-rw-r--r--gtk/gtkicontheme.c23
-rw-r--r--gtk/gtkicontheme.h8
3 files changed, 28 insertions, 4 deletions
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 3316829a80..aa7726bb53 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5010,6 +5010,7 @@ gtk_icon_theme_lookup_by_gicon
gtk_icon_theme_list_icons
gtk_icon_theme_get_icon_sizes
gtk_icon_paintable_get_filename
+gtk_icon_paintable_get_resource_path
gtk_icon_paintable_get_icon_name
gtk_icon_paintable_is_symbolic
<SUBSECTION Standard>
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 65459be8e3..5c4ce8160c 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -3130,7 +3130,28 @@ gtk_icon_paintable_get_filename (GtkIconPaintable *icon)
{
g_return_val_if_fail (icon != NULL, NULL);
- return icon->filename;
+ if (!icon->is_resource)
+ return icon->filename;
+ return NULL;
+}
+
+/**
+ * gtk_icon_paintable_get_resource_path:
+ * @self: a #GtkIcon
+ *
+ * Gets the resource path for the icon.
+ *
+ * Returns: (nullable) (type filename): the resource for the icon, or %NULL
+ * if the icon is not represented by a resource.
+ */
+const gchar *
+gtk_icon_paintable_get_resource_path (GtkIconPaintable *icon)
+{
+ g_return_val_if_fail (icon != NULL, NULL);
+
+ if (icon->is_resource)
+ return icon->filename;
+ return NULL;
}
/**
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index 2a3366b7d5..afc79e5a18 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -137,11 +137,13 @@ GDK_AVAILABLE_IN_ALL
GType gtk_icon_paintable_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
-const gchar * gtk_icon_paintable_get_filename (GtkIconPaintable *self);
+const gchar * gtk_icon_paintable_get_filename (GtkIconPaintable *self);
GDK_AVAILABLE_IN_ALL
-const gchar * gtk_icon_paintable_get_icon_name (GtkIconPaintable *self);
+const gchar * gtk_icon_paintable_get_resource_path (GtkIconPaintable *self);
GDK_AVAILABLE_IN_ALL
-gboolean gtk_icon_paintable_is_symbolic (GtkIconPaintable *self);
+const gchar * gtk_icon_paintable_get_icon_name (GtkIconPaintable *self);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_icon_paintable_is_symbolic (GtkIconPaintable *self);
G_END_DECLS