An app without a valid exe should be considered as non existant.

SVN revision: 17010
This commit is contained in:
sebastid 2005-09-28 01:55:03 +00:00 committed by sebastid
parent e453f90a08
commit 6e35847476
1 changed files with 30 additions and 13 deletions

View File

@ -373,7 +373,7 @@ e_app_new(const char *path, int scan_subdirs)
e_app_fields_fill(a, path); e_app_fields_fill(a, path);
/* no exe field.. not valid. drop it */ /* no exe field.. not valid. drop it */
if (!a->exe) if ((!a->exe) || (!ecore_file_app_installed(a->exe)))
goto error; goto error;
} }
else else
@ -1368,24 +1368,41 @@ _e_app_cb_monitor(void *data, Ecore_File_Monitor *em,
{ {
if (event == ECORE_FILE_EVENT_MODIFIED) if (event == ECORE_FILE_EVENT_MODIFIED)
{ {
E_App *a2; E_App *a;
a2 = _e_app_subapp_file_find(app, file); a = _e_app_subapp_file_find(app, file);
if (a2) if (a)
{ {
Evas_List *l; Evas_List *l;
e_app_fields_empty(a2); e_app_fields_empty(a);
e_app_fields_fill(a2, path); e_app_fields_fill(a, path);
_e_app_change(a2, E_APP_CHANGE); if ((!a->exe) || (!ecore_file_app_installed(a->exe)))
for (l = a2->references; l; l = l->next)
{ {
E_App *a3; a->deleted = 1;
for (l = a->references; l;)
{
E_App *a2;
a3 = l->data; a2 = l->data;
if (_e_app_copy(a3, a2)) l = l->next;
_e_app_change(a3, E_APP_CHANGE); if (a2->parent)
_e_app_subdir_rescan(a2->parent);
}
_e_app_subdir_rescan(app);
}
else
{
_e_app_change(a, E_APP_CHANGE);
for (l = a->references; l; l = l->next)
{
E_App *a2;
a2 = l->data;
if (_e_app_copy(a2, a))
_e_app_change(a2, E_APP_CHANGE);
}
} }
} }
} }