From: Corey Berla Date: Wed, 14 Dec 2022 01:56:04 +0000 (+0000) Subject: Merge branch 'wip/otte/for-5422' into 'main' X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2^2~6^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=dc59b1c588bbd3721efd7801eef2d0510ae175ec;p=gtk4.git Merge branch 'wip/otte/for-5422' into 'main' contentserializer: Serialize to file:// if possible Closes #5422 See merge request GNOME/gtk!5330 (cherry picked from commit e8f70be2c1c0532666941db9049cdb7307633e13) ea056d26 contentserializer: Serialize to file:// if possible --- diff --git a/gdk/gdkcontentserializer.c b/gdk/gdkcontentserializer.c index 0e24b222e6..18c0bda7d8 100644 --- a/gdk/gdkcontentserializer.c +++ b/gdk/gdkcontentserializer.c @@ -795,6 +795,22 @@ file_serializer_finish (GObject *source, gdk_content_serializer_return_success (serializer); } +static char * +file_get_native_uri (GFile *file) +{ + char *path; + + path = g_file_get_path (file); + if (path != NULL) + { + char *uri = g_filename_to_uri (path, NULL, NULL); + g_free (path); + return uri; + } + + return g_file_get_uri (file); +} + static void file_uri_serializer (GdkContentSerializer *serializer) { @@ -811,7 +827,7 @@ file_uri_serializer (GdkContentSerializer *serializer) file = g_value_get_object (gdk_content_serializer_get_value (serializer)); if (file) { - uri = g_file_get_uri (file); + uri = file_get_native_uri (file); g_string_append (str, uri); g_free (uri); } @@ -827,7 +843,7 @@ file_uri_serializer (GdkContentSerializer *serializer) for (l = g_value_get_boxed (value); l; l = l->next) { - uri = g_file_get_uri (l->data); + uri = file_get_native_uri (l->data); g_string_append (str, uri); g_free (uri); g_string_append (str, "\r\n");