# HG changeset patch # User nadvornik # Date 1218920260 0 # Node ID cbdabb49968451c4d61de028cfc417b8c1bbcfb8 # Parent ba1d3c4bc0cdc70018027318e9b90c12febaf0b7 keep files with non-zero marks in memory diff -r ba1d3c4bc0cd -r cbdabb499684 src/filedata.c --- a/src/filedata.c Sat Aug 16 20:34:14 2008 +0000 +++ b/src/filedata.c Sat Aug 16 20:57:40 2008 +0000 @@ -1061,9 +1061,20 @@ void file_data_set_mark(FileData *fd, gint n, gboolean value) { + guint old = fd->marks; if (!value == !(fd->marks & (1 << n))) return; fd->marks = fd->marks ^ (1 << n); + + if (old && !fd->marks) /* keep files with non-zero marks in memory */ + { + file_data_unref(fd); + } + else if (!old && fd->marks) + { + file_data_ref(fd); + } + file_data_increment_version(fd); file_data_send_notification(fd, NOTIFY_TYPE_INTERNAL); }