libegg r938 - trunk/libegg/smclient



Author: danw
Date: Wed Apr  8 18:05:06 2009
New Revision: 938
URL: http://svn.gnome.org/viewvc/libegg?rev=938&view=rev

Log:
	* eggsmclient-xsmp.c (save_state): Fix the
	.desktop-file-as-state-file case; egg_desktop_file_get_source()
	returns a URI, not a filename.


Modified:
   trunk/libegg/smclient/ChangeLog
   trunk/libegg/smclient/eggsmclient-xsmp.c

Modified: trunk/libegg/smclient/eggsmclient-xsmp.c
==============================================================================
--- trunk/libegg/smclient/eggsmclient-xsmp.c	(original)
+++ trunk/libegg/smclient/eggsmclient-xsmp.c	Wed Apr  8 18:05:06 2009
@@ -795,10 +795,14 @@
   if (desktop_file)
     {
       GKeyFile *merged_file;
+      char *desktop_file_path;
 
       merged_file = g_key_file_new ();
-      if (g_key_file_load_from_file (merged_file,
-				     egg_desktop_file_get_source (desktop_file),
+      desktop_file_path =
+	g_filename_from_uri (egg_desktop_file_get_source (desktop_file),
+			     NULL, NULL);
+      if (desktop_file_path &&
+	  g_key_file_load_from_file (merged_file, desktop_file_path,
 				     G_KEY_FILE_KEEP_COMMENTS |
 				     G_KEY_FILE_KEEP_TRANSLATIONS, NULL))
 	{
@@ -841,8 +845,11 @@
 				 EGG_DESKTOP_FILE_KEY_EXEC,
 				 exec);
 	  g_free (exec);
-
 	}
+      else
+	desktop_file = NULL;
+
+      g_free (desktop_file_path);
     }
 
   /* Now write state_file to disk. (We can't use mktemp(), because



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