diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index fb39ae5d7..5f13a9df7 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -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);