]> 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:50:56 +0000 (22:50 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Wed, 8 Apr 2009 22:50:56 +0000 (22:50 +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=/branches/gnome-2-26/; revision=3588

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

index 7195980c93f4dfcdfc3f670f1329bed1647d6074..07fa4957cd208a6f24b192374b7f854cf9a497f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+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-09  Benjamin Berg  <benjamin@sipsolutions.net>
 
        * backend/dvi/cairo-device.c: (dvi_cairo_put_pixel):
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