Propogate the size changes on delete back up the heirarchy.
This commit is contained in:
@ -198,7 +198,7 @@ ecdb_custom_filelist_model_filter(Ewl_Filelist_Directory *dir)
|
||||
ecore_list_first_goto(dir->rfiles);
|
||||
while ((file = ecore_list_next(dir->rfiles)))
|
||||
{
|
||||
if (ecore_file_file_get(file->name)[0] != '.')
|
||||
if ((file->name) && (ecore_file_file_get(file->name)[0] != '.'))
|
||||
{
|
||||
ecore_list_append(dir->files, file);
|
||||
nf++;
|
||||
@ -208,7 +208,7 @@ ecdb_custom_filelist_model_filter(Ewl_Filelist_Directory *dir)
|
||||
ecore_list_first_goto(dir->rdirs);
|
||||
while ((file = ecore_list_next(dir->rdirs)))
|
||||
{
|
||||
if (ecore_file_file_get(file->name)[0] != '.')
|
||||
if ((file->name) && (ecore_file_file_get(file->name)[0] != '.'))
|
||||
{
|
||||
ecore_list_append(dir->dirs, file);
|
||||
nd++;
|
||||
|
@ -123,6 +123,7 @@ void
|
||||
ecdb_source_child_remove(Ecdb_Source *src, Ecdb_Source *child)
|
||||
{
|
||||
Ecdb_Source **temp;
|
||||
Ecdb_Source *s;
|
||||
int i, cidx, f;
|
||||
|
||||
if (src == child)
|
||||
@ -149,7 +150,18 @@ ecdb_source_child_remove(Ecdb_Source *src, Ecdb_Source *child)
|
||||
FREE(src->children);
|
||||
src->children = temp;
|
||||
src->num_children--;
|
||||
src->size -= child->size;
|
||||
|
||||
// Propogate the size changes back up to the root
|
||||
s = src;
|
||||
do {
|
||||
s->size -= child->size;
|
||||
|
||||
if (s->parent)
|
||||
s = s->parent;
|
||||
else
|
||||
break;
|
||||
} while (1);
|
||||
|
||||
child->parent = NULL;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user