e17/efm: fix e_fm2_path_set: show contents of 'removable' mountpoints also when the device is already mounted

SVN revision: 61683
This commit is contained in:
Hannes Janetzek 2011-07-25 10:14:37 +00:00
parent b5786321d1
commit 016fde39dc
1 changed files with 24 additions and 21 deletions

View File

@ -1001,30 +1001,33 @@ e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
sd->mount = NULL;
}
/* If the path is of type removable: we add a new mountpoint */
if (sd->dev && !sd->mount && !strncmp(sd->dev, "removable:", 10))
if (!realpath)
{
E_Volume *v = NULL;
/* If the path is of type removable: we add a new mountpoint */
if (sd->dev && !sd->mount && !strncmp(sd->dev, "removable:", 10))
{
E_Volume *v = NULL;
v = e_fm2_device_volume_find(sd->dev + sizeof("removable:") - 1);
if (v)
{
sd->mount = e_fm2_device_mount(v,
_e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
_e_fm2_cb_unmount_ok, NULL, obj);
if (v->efm_mode != EFM_MODE_USING_HAL_MOUNT) return;
}
v = e_fm2_device_volume_find(sd->dev + sizeof("removable:") - 1);
if (v)
{
sd->mount = e_fm2_device_mount(v,
_e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
_e_fm2_cb_unmount_ok, NULL, obj);
if (v->efm_mode != EFM_MODE_USING_HAL_MOUNT) return;
}
}
else if (sd->config->view.open_dirs_in_place == 0)
{
E_Fm2_Mount *m;
m = e_fm2_device_mount_find(sd->realpath);
if (m)
sd->mount = e_fm2_device_mount(m->volume,
_e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
_e_fm2_cb_unmount_ok, NULL, obj);
}
}
else if (sd->config->view.open_dirs_in_place == 0)
{
E_Fm2_Mount *m;
m = e_fm2_device_mount_find(sd->realpath);
if (m)
sd->mount = e_fm2_device_mount(m->volume,
_e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
_e_fm2_cb_unmount_ok, NULL, obj);
}
if (!sd->mount || sd->mount->mounted)
{
sd->id = _e_fm2_client_monitor_add(sd->realpath);