forked from enlightenment/efl
fileselector: fix show filename in anchor for some cases
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
This commit is contained in:
parent
de24d2c5c0
commit
a355c3f3f5
|
@ -616,41 +616,34 @@ _sel_do(void *data)
|
||||||
struct sel_data *sdata = data;
|
struct sel_data *sdata = data;
|
||||||
const char *path;
|
const char *path;
|
||||||
const char *p;
|
const char *p;
|
||||||
|
Eina_Bool is_dir;
|
||||||
|
|
||||||
ELM_FILESELECTOR_DATA_GET(sdata->fs, sd);
|
ELM_FILESELECTOR_DATA_GET(sdata->fs, sd);
|
||||||
path = sdata->path;
|
path = sdata->path;
|
||||||
|
is_dir = ecore_file_is_dir(path);
|
||||||
|
|
||||||
if ((!sd->only_folder) && ecore_file_is_dir(path))
|
/* We need to populate, if path is directory and:
|
||||||
|
* - mode is GRID;
|
||||||
|
* - mode is LIST and 'not expand mode';
|
||||||
|
* in other cases update anchors. */
|
||||||
|
if (((!sd->expand) || (sd->mode == ELM_FILESELECTOR_GRID)) && (is_dir))
|
||||||
{
|
{
|
||||||
if (sd->expand && sd->mode == ELM_FILESELECTOR_LIST)
|
/* keep a ref to path 'couse it will be destroyed by _populate */
|
||||||
{
|
p = eina_stringshare_add(path);
|
||||||
_anchors_do(sdata->fs, path);
|
_populate(sdata->fs, p, NULL);
|
||||||
}
|
eina_stringshare_del(p);
|
||||||
else
|
|
||||||
{
|
|
||||||
/* keep a ref to path 'couse it will be destroyed by _populate */
|
|
||||||
p = eina_stringshare_add(path);
|
|
||||||
_populate(sdata->fs, p, NULL);
|
|
||||||
eina_stringshare_del(p);
|
|
||||||
}
|
|
||||||
goto end;
|
|
||||||
}
|
}
|
||||||
else /* navigating through folders only or file is not a dir. */
|
else
|
||||||
{
|
{
|
||||||
if (sd->expand && sd->mode == ELM_FILESELECTOR_LIST)
|
_anchors_do(sdata->fs, path);
|
||||||
_anchors_do(sdata->fs, path);
|
|
||||||
else if (sd->only_folder)
|
|
||||||
{
|
|
||||||
/* keep a ref to path 'couse it will be destroyed by _populate */
|
|
||||||
p = eina_stringshare_add(path);
|
|
||||||
_populate(sdata->fs, p, NULL);
|
|
||||||
eina_stringshare_del(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
evas_object_smart_callback_call(sdata->fs, SIG_SELECTED, (void *)path);
|
/* We need to send callback when:
|
||||||
|
* - path is dir and mode is ONLY FOLDER
|
||||||
|
* - path is file and mode is NOT ONLY FOLDER */
|
||||||
|
if (is_dir == sd->only_folder)
|
||||||
|
evas_object_smart_callback_call(sdata->fs, SIG_SELECTED, (void *)path);
|
||||||
|
|
||||||
end:
|
|
||||||
sd->sel_idler = NULL;
|
sd->sel_idler = NULL;
|
||||||
free(sdata);
|
free(sdata);
|
||||||
return ECORE_CALLBACK_CANCEL;
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
|
Loading…
Reference in New Issue