gnome-desktop r5012 - trunk/libgnome-desktop



Author: ssp
Date: Wed Feb 13 17:26:36 2008
New Revision: 5012
URL: http://svn.gnome.org/viewvc/gnome-desktop?rev=5012&view=rev

Log:
2008-02-13  Soren Sandmann  <sandmann redhat com>

	* gnome-bg.c (gnome_bg_set_uri): If we are passed a filename,
	first convert it to a uri since GIO doesn't support paths as
	uris. 

	* gnome-bg.c (handle_text): Convert the filenames to uris.

	Fix bug 516269, reported by Sebastian Bacher.
	


Modified:
   trunk/libgnome-desktop/ChangeLog
   trunk/libgnome-desktop/gnome-bg.c

Modified: trunk/libgnome-desktop/gnome-bg.c
==============================================================================
--- trunk/libgnome-desktop/gnome-bg.c	(original)
+++ trunk/libgnome-desktop/gnome-bg.c	Wed Feb 13 17:26:36 2008
@@ -238,8 +238,13 @@
 gnome_bg_set_uri (GnomeBG     *bg,
 		  const char  *uri)
 {
+	char *free_me = NULL;
+	
 	g_return_if_fail (bg != NULL);
 	
+	if (g_path_is_absolute (uri))
+		uri = free_me = g_filename_to_uri (uri, NULL, NULL);
+	
 	if (is_different (bg, uri)) {
 		char *tmp = g_strdup (uri);
 		
@@ -253,6 +258,8 @@
 		
 		emit_changed (bg);
 	}
+
+	g_free (free_me);
 }
 
 static void
@@ -1603,6 +1610,21 @@
 	return strtol (text, NULL, 0);
 }
 
+static char *
+make_uri (char *file)
+{
+	if (g_path_is_absolute (file)) {
+		char *result = g_filename_to_uri (file, NULL, NULL);
+
+		g_free (file);
+
+		return result;
+	}
+	else {
+		return file;
+	}
+}
+
 static void
 handle_text (GMarkupParseContext *context,
 	     const gchar         *text,
@@ -1639,9 +1661,11 @@
 	else if (stack_is (parser, "file", "static", "background", NULL) ||
 		 stack_is (parser, "from", "transition", "background", NULL)) {
 		slide->file1 = g_strdup (text);
+		slide->file1 = make_uri (slide->file1);
 	}
 	else if (stack_is (parser, "to", "transition", "background", NULL)) {
 		slide->file2 = g_strdup (text);
+		slide->file2 = make_uri (slide->file2);
 	}
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]