diff options
author | infirit <[email protected]> | 2014-07-25 15:08:47 +0200 |
---|---|---|
committer | infirit <[email protected]> | 2014-07-25 15:08:47 +0200 |
commit | 9432c69d9bd5826bc975221f18427a4ba228574b (patch) | |
tree | 21ac6693474d338107f8d4d96d7817d05fd2ba6a /src | |
parent | fa13dcadb1c4a47be4b9caf9edcd4cd3833bd1a5 (diff) | |
download | eom-9432c69d9bd5826bc975221f18427a4ba228574b.tar.bz2 eom-9432c69d9bd5826bc975221f18427a4ba228574b.tar.xz |
Make newly saved images user writable
Doesn't occur for existing files only when saving creates a new file.
Eog bug http://bugzilla.gnome.org/show_bug.cgi?id=589921
Based on eog commit 00075ab25d5bd3656a2f5f89773bd56e091d5b47
From Javier Sánchez <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/eom-jobs.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/eom-jobs.c b/src/eom-jobs.c index 48afc1c..1ddfc4f 100644 --- a/src/eom-jobs.c +++ b/src/eom-jobs.c @@ -709,6 +709,9 @@ eom_job_save_as_run (EomJob *ejob) EomJobSaveAs *saveas_job; GList *it; guint n_images; + guint file_permissions = 00000; + guint permissions_mask = 00600; + GFileInfo *info; g_return_if_fail (EOM_IS_JOB_SAVE_AS (ejob)); @@ -780,6 +783,26 @@ eom_job_save_as_run (EomJob *ejob) dest_info, &ejob->error); + /* get file permissions */ + info = g_file_query_info (saveas_job->file, + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + NULL); + + file_permissions = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE); + + /* apply permission mask to file permissions */ + file_permissions |= permissions_mask; + + g_file_set_attribute_uint32 (saveas_job->file, + G_FILE_ATTRIBUTE_UNIX_MODE, + file_permissions, + G_FILE_QUERY_INFO_NONE, + NULL, + NULL); + + g_object_unref (info); if (src_info) g_object_unref (src_info); |