Mercurial > geeqie
diff src/layout.c @ 791:6d65167764ea
realtime file monitor
author | nadvornik |
---|---|
date | Fri, 06 Jun 2008 21:50:09 +0000 |
parents | a2209b1f769d |
children | 0be132a51f51 |
line wrap: on
line diff
--- a/src/layout.c Fri Jun 06 20:59:03 2008 +0000 +++ b/src/layout.c Fri Jun 06 21:50:09 2008 +0000 @@ -937,8 +937,13 @@ if (isdir(fd->path)) { - file_data_unref(lw->dir_fd); + if (lw->dir_fd) + { + file_data_unregister_real_time_monitor(lw->dir_fd); + file_data_unref(lw->dir_fd); + } lw->dir_fd = file_data_ref(fd); + file_data_register_real_time_monitor(fd); } else { @@ -951,8 +956,13 @@ } else if (isdir(base)) { - file_data_unref(lw->dir_fd); + if (lw->dir_fd) + { + file_data_unregister_real_time_monitor(lw->dir_fd); + file_data_unref(lw->dir_fd); + } lw->dir_fd = file_data_new_simple(base); + file_data_register_real_time_monitor(lw->dir_fd); g_free(base); } else @@ -1608,6 +1618,7 @@ layout_image_full_screen_stop(lw); dir_fd = lw->dir_fd; + file_data_unregister_real_time_monitor(lw->dir_fd); lw->dir_fd = NULL; lw->image = NULL; lw->utility_box = NULL; @@ -1826,16 +1837,16 @@ layout_window_list = g_list_remove(layout_window_list, lw); - if (lw->last_time_id != -1) - { - g_source_remove(lw->last_time_id); - } - + layout_bars_close(lw); gtk_widget_destroy(lw->window); - file_data_unref(lw->dir_fd); + if (lw->dir_fd) + { + file_data_unregister_real_time_monitor(lw->dir_fd); + file_data_unref(lw->dir_fd); + } g_free(lw); } @@ -1979,7 +1990,7 @@ /* set up the time stat timeout */ lw->last_version = 0; - lw->last_time_id = g_timeout_add(5000, layout_check_for_update_cb, lw); +// lw->last_time_id = g_timeout_add(5000, layout_check_for_update_cb, lw); if (geometry) {