Updating branch refs/heads/master to 9d581bfe9fd32b1b18ed7e3c0841b25f71eabc20 (commit) from d57356c0c184f8ab6c1ec4116f5de8f8534425c2 (commit)
commit 9d581bfe9fd32b1b18ed7e3c0841b25f71eabc20 Author: Stephan Arts <step...@xfce.org> Date: Sat Mar 10 21:27:59 2012 +0100 Cleanup file-monitors on file removal src/image_list.c | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/src/image_list.c b/src/image_list.c index a56d54e..124ebf8 100644 --- a/src/image_list.c +++ b/src/image_list.c @@ -708,6 +708,14 @@ cb_file_monitor_changed ( { case G_FILE_MONITOR_EVENT_DELETED: rstto_image_list_remove_file ( image_list, r_file ); + if (image_list->priv->dir_monitor == NULL) + { + image_list->priv->image_monitors = g_list_remove ( + image_list->priv->image_monitors, + monitor); + g_object_unref (monitor); + monitor = NULL; + } break; case G_FILE_MONITOR_EVENT_CREATED: rstto_image_list_add_file (image_list, r_file, NULL); @@ -720,6 +728,27 @@ cb_file_monitor_changed ( r_file = rstto_file_new (other_file); rstto_image_list_add_file (image_list, r_file, NULL); + + if (image_list->priv->dir_monitor == NULL) + { + image_list->priv->image_monitors = g_list_remove ( + image_list->priv->image_monitors, + monitor); + g_object_unref (monitor); + monitor = g_file_monitor_file ( + other_file, + G_FILE_MONITOR_NONE, + NULL, + NULL); + g_signal_connect ( + G_OBJECT(monitor), + "changed", + G_CALLBACK (cb_file_monitor_changed), + image_list); + image_list->priv->image_monitors = g_list_prepend ( + image_list->priv->image_monitors, + monitor); + } break; default: break; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits