]> www.fi.muni.cz Git - evince.git/commitdiff
Fix the .desktop-file-as-state-file case; egg_desktop_file_get_source()
authorDan Winship <danw@gnome.org>
Wed, 8 Apr 2009 22:14:07 +0000 (22:14 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Wed, 8 Apr 2009 22:14:07 +0000 (22:14 +0000)
2009-04-08  Dan Winship  <danw@gnome.org>
* cut-n-paste/smclient/eggsmclient-xsmp.c (save_state):

Fix the .desktop-file-as-state-file case;
egg_desktop_file_get_source() returns a URI, not a filename.

svn path=/trunk/; revision=3585

ChangeLog
cut-n-paste/smclient/eggsmclient-xsmp.c

index 54c53e032c89b1dc3ea2e0583754e37208c69671..1f1fdbe788479eca10ae26fe24ae64888dea6e6d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-04-08  Dan Winship  <danw@gnome.org>
+       * cut-n-paste/smclient/eggsmclient-xsmp.c (save_state):
+       
+       Fix the .desktop-file-as-state-file case;
+       egg_desktop_file_get_source() returns a URI, not a filename.
+
 2009-04-08  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * configure.ac:
index e4b11f6288d64e84d3eeff238d343feabd866d19..1a56156ce2e1150de929738a8b0cb643d99ceb90 100644 (file)
@@ -795,10 +795,14 @@ save_state (EggSMClientXSMP *xsmp)
   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 @@ save_state (EggSMClientXSMP *xsmp)
                                 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