mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-16 21:50:34 +00:00
Ensure we can load images via resource:// uris from CSS
This commit is contained in:
parent
6afeb8d355
commit
e46971306a
@ -67,19 +67,25 @@ gtk_css_image_url_parse (GtkCssImage *image,
|
||||
GtkCssImageUrl *url = GTK_CSS_IMAGE_URL (image);
|
||||
GdkPixbuf *pixbuf;
|
||||
GFile *file;
|
||||
char *path;
|
||||
cairo_t *cr;
|
||||
GError *error = NULL;
|
||||
GFileInputStream *input;
|
||||
|
||||
file = _gtk_css_parser_read_url (parser, base);
|
||||
if (file == NULL)
|
||||
return FALSE;
|
||||
|
||||
path = g_file_get_path (file);
|
||||
input = g_file_read (file, NULL, &error);
|
||||
if (input == NULL)
|
||||
{
|
||||
_gtk_css_parser_take_error (parser, error);
|
||||
return FALSE;
|
||||
}
|
||||
g_object_unref (file);
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_file (path, &error);
|
||||
g_free (path);
|
||||
pixbuf = gdk_pixbuf_new_from_stream (G_INPUT_STREAM (input), NULL, &error);
|
||||
g_object_unref (input);
|
||||
|
||||
if (pixbuf == NULL)
|
||||
{
|
||||
_gtk_css_parser_take_error (parser, error);
|
||||
|
@ -873,6 +873,7 @@ _gtk_css_parser_read_url (GtkCssParser *parser,
|
||||
GFile *base)
|
||||
{
|
||||
gchar *path;
|
||||
char *scheme;
|
||||
GFile *file;
|
||||
|
||||
if (_gtk_css_parser_try (parser, "url", FALSE))
|
||||
@ -907,6 +908,15 @@ _gtk_css_parser_read_url (GtkCssParser *parser,
|
||||
g_free (path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
scheme = g_uri_parse_scheme (path);
|
||||
if (scheme != NULL)
|
||||
{
|
||||
file = g_file_new_for_uri (path);
|
||||
g_free (path);
|
||||
g_free (scheme);
|
||||
return file;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user