X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=cut-n-paste%2Frecent-files%2Fegg-recent-model.c;h=067a6353f88ee1ae84af31973ecc6782b55e4df0;hb=a54bf6cacb65df7cf50bf3e2d044c9dc4537618a;hp=201aec006d7d17c54ce01d72276fde697e875174;hpb=2845fb905cccd6655c294247722648d3bce97a27;p=evince.git diff --git a/cut-n-paste/recent-files/egg-recent-model.c b/cut-n-paste/recent-files/egg-recent-model.c index 201aec00..067a6353 100644 --- a/cut-n-paste/recent-files/egg-recent-model.c +++ b/cut-n-paste/recent-files/egg-recent-model.c @@ -193,7 +193,9 @@ egg_recent_model_write_raw (EggRecentModel *model, FILE *file, if (fputs (content, file) == EOF) return FALSE; +#ifndef G_OS_WIN32 fsync (fd); +#endif rewind (file); return TRUE; @@ -643,6 +645,8 @@ egg_recent_model_monitor_list (EggRecentModel *model, GList *list) static gboolean egg_recent_model_changed_timeout (EggRecentModel *model) { + model->priv->changed_timeout = 0; + egg_recent_model_changed (model); return FALSE; @@ -882,6 +886,7 @@ egg_recent_model_open_file (EggRecentModel *model) static gboolean egg_recent_model_lock_file (FILE *file) { +#ifdef F_TLOCK int fd; gint try = 5; @@ -911,17 +916,24 @@ egg_recent_model_lock_file (FILE *file) } return FALSE; +#else + return TRUE; +#endif } static gboolean egg_recent_model_unlock_file (FILE *file) { +#ifdef F_TLOCK int fd; rewind (file); fd = fileno (file); return (lockf (fd, F_ULOCK, 0) == 0) ? TRUE : FALSE; +#else + return TRUE; +#endif } static void @@ -929,6 +941,10 @@ egg_recent_model_finalize (GObject *object) { EggRecentModel *model = EGG_RECENT_MODEL (object); + if (model->priv->changed_timeout > 0) { + g_source_remove (model->priv->changed_timeout); + } + egg_recent_model_monitor (model, FALSE);