forked from enlightenment/enlightenment
fix sting bugs with e_fm and fileman.
* simplify eina_stringshare usage with _eina_stringshare_replace(); * do not modify the string in stringshare as in e_fm2_parent_go(); * use custom_theme_content instead of custom_theme in e_fm2_custom_theme_content_set(). Hopefully this will break nothing, but further analysis if it's leaking strings in the stringshare should be done. SVN revision: 38559
This commit is contained in:
parent
22df734bfc
commit
78c70d7f94
240
src/bin/e_fm.c
240
src/bin/e_fm.c
|
@ -392,6 +392,16 @@ static int _e_fm_file_buffer_copying = 0;
|
||||||
#include "e_fm_shared.h"
|
#include "e_fm_shared.h"
|
||||||
#undef E_FM_SHARED_CODEC
|
#undef E_FM_SHARED_CODEC
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
_eina_stringshare_replace(const char **p, const char *str)
|
||||||
|
{
|
||||||
|
str = eina_stringshare_add(str);
|
||||||
|
eina_stringshare_del(*p);
|
||||||
|
if (*p == str)
|
||||||
|
return;
|
||||||
|
*p = str;
|
||||||
|
}
|
||||||
|
|
||||||
/***/
|
/***/
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
|
@ -566,16 +576,10 @@ e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
|
||||||
|
|
||||||
if (sd->realpath) _e_fm2_client_monitor_del(sd->id, sd->realpath);
|
if (sd->realpath) _e_fm2_client_monitor_del(sd->id, sd->realpath);
|
||||||
sd->listing = 0;
|
sd->listing = 0;
|
||||||
|
|
||||||
if (sd->dev) eina_stringshare_del(sd->dev);
|
_eina_stringshare_replace(&sd->dev, dev);
|
||||||
if (sd->path) eina_stringshare_del(sd->path);
|
_eina_stringshare_replace(&sd->path, path);
|
||||||
if (sd->realpath) eina_stringshare_del(sd->realpath);
|
eina_stringshare_del(sd->realpath);
|
||||||
sd->dev = sd->path = sd->realpath = NULL;
|
|
||||||
|
|
||||||
sd->order_file = 0;
|
|
||||||
|
|
||||||
if (dev) sd->dev = eina_stringshare_add(dev);
|
|
||||||
if (path) sd->path = eina_stringshare_add(path);
|
|
||||||
sd->realpath = realpath;
|
sd->realpath = realpath;
|
||||||
_e_fm2_queue_free(obj);
|
_e_fm2_queue_free(obj);
|
||||||
_e_fm2_regions_free(obj);
|
_e_fm2_regions_free(obj);
|
||||||
|
@ -670,11 +674,7 @@ e_fm2_custom_theme_set(Evas_Object *obj, const char *path)
|
||||||
if (!sd) return; // safety
|
if (!sd) return; // safety
|
||||||
if (!evas_object_type_get(obj)) return; // safety
|
if (!evas_object_type_get(obj)) return; // safety
|
||||||
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
||||||
if (sd->custom_theme) eina_stringshare_del(sd->custom_theme);
|
_eina_stringshare_replace(&sd->custom_theme, path);
|
||||||
if (path)
|
|
||||||
sd->custom_theme = eina_stringshare_add(path);
|
|
||||||
else
|
|
||||||
sd->custom_theme = NULL;
|
|
||||||
_e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman",
|
_e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman",
|
||||||
"list/drop_between");
|
"list/drop_between");
|
||||||
_e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman",
|
_e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman",
|
||||||
|
@ -692,11 +692,7 @@ e_fm2_custom_theme_content_set(Evas_Object *obj, const char *content)
|
||||||
if (!sd) return; // safety
|
if (!sd) return; // safety
|
||||||
if (!evas_object_type_get(obj)) return; // safety
|
if (!evas_object_type_get(obj)) return; // safety
|
||||||
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
||||||
if (sd->custom_theme) eina_stringshare_del(sd->custom_theme);
|
_eina_stringshare_replace(&sd->custom_theme_content, content);
|
||||||
if (content)
|
|
||||||
sd->custom_theme_content = eina_stringshare_add(content);
|
|
||||||
else
|
|
||||||
sd->custom_theme_content = NULL;
|
|
||||||
_e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman",
|
_e_fm2_theme_edje_object_set(sd, sd->drop, "base/theme/fileman",
|
||||||
"list/drop_between");
|
"list/drop_between");
|
||||||
_e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman",
|
_e_fm2_theme_edje_object_set(sd, sd->drop_in, "base/theme/fileman",
|
||||||
|
@ -777,23 +773,22 @@ EAPI void
|
||||||
e_fm2_parent_go(Evas_Object *obj)
|
e_fm2_parent_go(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
E_Fm2_Smart_Data *sd;
|
E_Fm2_Smart_Data *sd;
|
||||||
char *path, *dev = NULL, *p;
|
char *path, *p;
|
||||||
|
|
||||||
sd = evas_object_smart_data_get(obj);
|
sd = evas_object_smart_data_get(obj);
|
||||||
if (!sd) return; // safety
|
if (!sd) return; // safety
|
||||||
if (!evas_object_type_get(obj)) return; // safety
|
if (!evas_object_type_get(obj)) return; // safety
|
||||||
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
||||||
if (!sd->path) return;
|
if (!sd->path) return;
|
||||||
path = eina_stringshare_ref(sd->path);
|
path = strdup(sd->path);
|
||||||
if (sd->dev) dev = eina_stringshare_ref(sd->dev);
|
if (!path) return;
|
||||||
if ((p = strrchr(path, '/'))) *p = 0;
|
if ((p = strrchr(path, '/'))) *p = 0;
|
||||||
if (*path == 0)
|
if (*path == 0)
|
||||||
e_fm2_path_set(obj, dev, "/");
|
e_fm2_path_set(obj, sd->dev, "/");
|
||||||
else
|
else
|
||||||
e_fm2_path_set(obj, dev, path);
|
e_fm2_path_set(obj, sd->dev, path);
|
||||||
|
|
||||||
eina_stringshare_del(dev);
|
free(path);
|
||||||
eina_stringshare_del(path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
@ -811,10 +806,10 @@ e_fm2_config_set(Evas_Object *obj, E_Fm2_Config *cfg)
|
||||||
sd->config = E_NEW(E_Fm2_Config, 1);
|
sd->config = E_NEW(E_Fm2_Config, 1);
|
||||||
if (!sd->config) return;
|
if (!sd->config) return;
|
||||||
memcpy(sd->config, cfg, sizeof(E_Fm2_Config));
|
memcpy(sd->config, cfg, sizeof(E_Fm2_Config));
|
||||||
if (cfg->icon.key_hint) sd->config->icon.key_hint = eina_stringshare_add(cfg->icon.key_hint);
|
sd->config->icon.key_hint = eina_stringshare_add(cfg->icon.key_hint);
|
||||||
if (cfg->theme.background) sd->config->theme.background = eina_stringshare_add(cfg->theme.background);
|
sd->config->theme.background = eina_stringshare_add(cfg->theme.background);
|
||||||
if (cfg->theme.frame) sd->config->theme.frame = eina_stringshare_add(cfg->theme.frame);
|
sd->config->theme.frame = eina_stringshare_add(cfg->theme.frame);
|
||||||
if (cfg->theme.icons) sd->config->theme.icons = eina_stringshare_add(cfg->theme.icons);
|
sd->config->theme.icons = eina_stringshare_add(cfg->theme.icons);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI E_Fm2_Config *
|
EAPI E_Fm2_Config *
|
||||||
|
@ -1022,7 +1017,7 @@ e_fm2_icons_update(Evas_Object *obj)
|
||||||
|
|
||||||
ic = l->data;
|
ic = l->data;
|
||||||
|
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
eina_stringshare_del(ic->info.icon);
|
||||||
ic->info.icon = NULL;
|
ic->info.icon = NULL;
|
||||||
ic->info.icon_type = 0;
|
ic->info.icon_type = 0;
|
||||||
|
|
||||||
|
@ -1036,10 +1031,7 @@ e_fm2_icons_update(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (cf->icon.valid)
|
if (cf->icon.valid)
|
||||||
{
|
{
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
_eina_stringshare_replace(&ic->info.icon, cf->icon.icon);
|
||||||
ic->info.icon = NULL;
|
|
||||||
if (cf->icon.icon)
|
|
||||||
ic->info.icon = eina_stringshare_add(cf->icon.icon);
|
|
||||||
ic->info.icon_type = cf->icon.type;
|
ic->info.icon_type = cf->icon.type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1843,17 +1835,11 @@ _e_fm2_file_force_update(const char *path)
|
||||||
memcpy(&(finf.st), &(ic->info.statinfo),
|
memcpy(&(finf.st), &(ic->info.statinfo),
|
||||||
sizeof(struct stat));
|
sizeof(struct stat));
|
||||||
finf.broken_link = ic->info.broken_link;
|
finf.broken_link = ic->info.broken_link;
|
||||||
if (ic->info.link)
|
finf.lnk = ic->info.link;
|
||||||
finf.lnk = eina_stringshare_add(ic->info.link);
|
finf.rlnk = ic->info.real_link;
|
||||||
if (ic->info.real_link)
|
|
||||||
finf.rlnk = eina_stringshare_add(ic->info.real_link);
|
|
||||||
ic->removable_state_change = 1;
|
ic->removable_state_change = 1;
|
||||||
_e_fm2_live_file_changed(l->data, ecore_file_file_get(path),
|
_e_fm2_live_file_changed(l->data, ecore_file_file_get(path),
|
||||||
&finf);
|
&finf);
|
||||||
if (ic->info.link)
|
|
||||||
eina_stringshare_del(ic->info.link);
|
|
||||||
if (ic->info.real_link)
|
|
||||||
eina_stringshare_del(ic->info.real_link);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3375,14 +3361,14 @@ _e_fm2_icon_new(E_Fm2_Smart_Data *sd, const char *file, E_Fm2_Finfo *finf)
|
||||||
static void
|
static void
|
||||||
_e_fm2_icon_unfill(E_Fm2_Icon *ic)
|
_e_fm2_icon_unfill(E_Fm2_Icon *ic)
|
||||||
{
|
{
|
||||||
if (ic->info.mime) eina_stringshare_del(ic->info.mime);
|
eina_stringshare_del(ic->info.mime);
|
||||||
if (ic->info.label) eina_stringshare_del(ic->info.label);
|
eina_stringshare_del(ic->info.label);
|
||||||
if (ic->info.comment) eina_stringshare_del(ic->info.comment);
|
eina_stringshare_del(ic->info.comment);
|
||||||
if (ic->info.generic) eina_stringshare_del(ic->info.generic);
|
eina_stringshare_del(ic->info.generic);
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
eina_stringshare_del(ic->info.icon);
|
||||||
if (ic->info.link) eina_stringshare_del(ic->info.link);
|
eina_stringshare_del(ic->info.link);
|
||||||
if (ic->info.real_link) eina_stringshare_del(ic->info.real_link);
|
eina_stringshare_del(ic->info.real_link);
|
||||||
if (ic->info.category) eina_stringshare_del(ic->info.category);
|
eina_stringshare_del(ic->info.category);
|
||||||
ic->info.mime = NULL;
|
ic->info.mime = NULL;
|
||||||
ic->info.label = NULL;
|
ic->info.label = NULL;
|
||||||
ic->info.comment = NULL;
|
ic->info.comment = NULL;
|
||||||
|
@ -3436,8 +3422,12 @@ _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf)
|
||||||
memcpy(&(ic->info.statinfo), &(finf->st), sizeof(struct stat));
|
memcpy(&(ic->info.statinfo), &(finf->st), sizeof(struct stat));
|
||||||
if ((finf->lnk) && (finf->lnk[0]))
|
if ((finf->lnk) && (finf->lnk[0]))
|
||||||
ic->info.link = eina_stringshare_add(finf->lnk);
|
ic->info.link = eina_stringshare_add(finf->lnk);
|
||||||
|
else
|
||||||
|
ic->info.link = NULL;
|
||||||
if ((finf->rlnk) && (finf->rlnk[0]))
|
if ((finf->rlnk) && (finf->rlnk[0]))
|
||||||
ic->info.real_link = eina_stringshare_add(finf->rlnk);
|
ic->info.real_link = eina_stringshare_add(finf->rlnk);
|
||||||
|
else
|
||||||
|
ic->info.real_link = NULL;
|
||||||
ic->info.broken_link = finf->broken_link;
|
ic->info.broken_link = finf->broken_link;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -3499,9 +3489,7 @@ _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf)
|
||||||
{
|
{
|
||||||
if (cf->icon.icon)
|
if (cf->icon.icon)
|
||||||
{
|
{
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
_eina_stringshare_replace(&ic->info.icon, cf->icon.icon);
|
||||||
ic->info.icon = NULL;
|
|
||||||
ic->info.icon = eina_stringshare_add(cf->icon.icon);
|
|
||||||
}
|
}
|
||||||
ic->info.icon_type = cf->icon.type;
|
ic->info.icon_type = cf->icon.type;
|
||||||
}
|
}
|
||||||
|
@ -3645,15 +3633,15 @@ _e_fm2_icon_free(E_Fm2_Icon *ic)
|
||||||
e_object_del(E_OBJECT(ic->prop_dialog));
|
e_object_del(E_OBJECT(ic->prop_dialog));
|
||||||
ic->prop_dialog = NULL;
|
ic->prop_dialog = NULL;
|
||||||
}
|
}
|
||||||
if (ic->info.file) eina_stringshare_del(ic->info.file);
|
eina_stringshare_del(ic->info.file);
|
||||||
if (ic->info.mime) eina_stringshare_del(ic->info.mime);
|
eina_stringshare_del(ic->info.mime);
|
||||||
if (ic->info.label) eina_stringshare_del(ic->info.label);
|
eina_stringshare_del(ic->info.label);
|
||||||
if (ic->info.comment) eina_stringshare_del(ic->info.comment);
|
eina_stringshare_del(ic->info.comment);
|
||||||
if (ic->info.generic) eina_stringshare_del(ic->info.generic);
|
eina_stringshare_del(ic->info.generic);
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
eina_stringshare_del(ic->info.icon);
|
||||||
if (ic->info.link) eina_stringshare_del(ic->info.link);
|
eina_stringshare_del(ic->info.link);
|
||||||
if (ic->info.real_link) eina_stringshare_del(ic->info.real_link);
|
eina_stringshare_del(ic->info.real_link);
|
||||||
if (ic->info.category) eina_stringshare_del(ic->info.category);
|
eina_stringshare_del(ic->info.category);
|
||||||
free(ic);
|
free(ic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3921,10 +3909,10 @@ _e_fm2_icon_desktop_load(E_Fm2_Icon *ic)
|
||||||
|
|
||||||
ic->info.removable = 0;
|
ic->info.removable = 0;
|
||||||
ic->info.removable_full = 0;
|
ic->info.removable_full = 0;
|
||||||
if (desktop->name) ic->info.label = eina_stringshare_add(desktop->name);
|
ic->info.label = eina_stringshare_add(desktop->name);
|
||||||
if (desktop->generic_name) ic->info.generic = eina_stringshare_add(desktop->generic_name);
|
ic->info.generic = eina_stringshare_add(desktop->generic_name);
|
||||||
if (desktop->comment) ic->info.comment = eina_stringshare_add(desktop->comment);
|
ic->info.comment = eina_stringshare_add(desktop->comment);
|
||||||
if (desktop->icon) ic->info.icon = eina_stringshare_add(desktop->icon);
|
ic->info.icon = eina_stringshare_add(desktop->icon);
|
||||||
if (desktop->url)
|
if (desktop->url)
|
||||||
ic->info.link = _e_fm2_icon_desktop_url_eval(desktop->url);
|
ic->info.link = _e_fm2_icon_desktop_url_eval(desktop->url);
|
||||||
if (desktop->x)
|
if (desktop->x)
|
||||||
|
@ -3960,12 +3948,12 @@ _e_fm2_icon_desktop_load(E_Fm2_Icon *ic)
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
error:
|
error:
|
||||||
if (ic->info.label) eina_stringshare_del(ic->info.label);
|
eina_stringshare_del(ic->info.label);
|
||||||
if (ic->info.comment) eina_stringshare_del(ic->info.comment);
|
eina_stringshare_del(ic->info.comment);
|
||||||
if (ic->info.generic) eina_stringshare_del(ic->info.generic);
|
eina_stringshare_del(ic->info.generic);
|
||||||
if (ic->info.icon) eina_stringshare_del(ic->info.icon);
|
eina_stringshare_del(ic->info.icon);
|
||||||
if (ic->info.link) eina_stringshare_del(ic->info.link);
|
eina_stringshare_del(ic->info.link);
|
||||||
if (ic->info.category) eina_stringshare_del(ic->info.category);
|
eina_stringshare_del(ic->info.category);
|
||||||
ic->info.label = NULL;
|
ic->info.label = NULL;
|
||||||
ic->info.comment = NULL;
|
ic->info.comment = NULL;
|
||||||
ic->info.generic = NULL;
|
ic->info.generic = NULL;
|
||||||
|
@ -4160,31 +4148,31 @@ _e_fm2_icon_sel_prev(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
E_Fm2_Smart_Data *sd;
|
E_Fm2_Smart_Data *sd;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
E_Fm2_Icon *ic;
|
E_Fm2_Icon *ic, *ic_prev;
|
||||||
|
|
||||||
sd = evas_object_smart_data_get(obj);
|
sd = evas_object_smart_data_get(obj);
|
||||||
if (!sd) return;
|
if (!sd) return;
|
||||||
if (!sd->icons) return;
|
if (!sd->icons) return;
|
||||||
for (l = sd->icons; l; l = l->next)
|
|
||||||
|
ic_prev = NULL;
|
||||||
|
EINA_LIST_FOREACH(sd->icons, l, ic)
|
||||||
{
|
{
|
||||||
ic = l->data;
|
|
||||||
if (ic->selected)
|
if (ic->selected)
|
||||||
{
|
{
|
||||||
if (!l->prev) return;
|
if (!l->prev) return;
|
||||||
ic = l->prev->data;
|
ic_prev = l->prev->data;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ic = NULL;
|
|
||||||
}
|
}
|
||||||
if (!ic)
|
if (!ic_prev)
|
||||||
{
|
{
|
||||||
_e_fm2_icon_sel_last(obj);
|
_e_fm2_icon_sel_last(obj);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_e_fm2_icon_desel_any(obj);
|
_e_fm2_icon_desel_any(obj);
|
||||||
_e_fm2_icon_select(ic);
|
_e_fm2_icon_select(ic_prev);
|
||||||
evas_object_smart_callback_call(sd->obj, "selection_change", NULL);
|
evas_object_smart_callback_call(sd->obj, "selection_change", NULL);
|
||||||
_e_fm2_icon_make_visible(ic);
|
_e_fm2_icon_make_visible(ic_prev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -4192,31 +4180,31 @@ _e_fm2_icon_sel_next(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
E_Fm2_Smart_Data *sd;
|
E_Fm2_Smart_Data *sd;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
E_Fm2_Icon *ic;
|
E_Fm2_Icon *ic, *ic_next;
|
||||||
|
|
||||||
sd = evas_object_smart_data_get(obj);
|
sd = evas_object_smart_data_get(obj);
|
||||||
if (!sd) return;
|
if (!sd) return;
|
||||||
if (!sd->icons) return;
|
if (!sd->icons) return;
|
||||||
for (l = sd->icons; l; l = l->next)
|
|
||||||
|
ic_next = NULL;
|
||||||
|
EINA_LIST_FOREACH(sd->icons, l, ic)
|
||||||
{
|
{
|
||||||
ic = l->data;
|
|
||||||
if (ic->selected)
|
if (ic->selected)
|
||||||
{
|
{
|
||||||
if (!l->next) return;
|
if (!l->next) return;
|
||||||
ic = l->next->data;
|
ic_next = l->next->data;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ic = NULL;
|
|
||||||
}
|
}
|
||||||
if (!ic)
|
if (!ic_next)
|
||||||
{
|
{
|
||||||
_e_fm2_icon_sel_first(obj);
|
_e_fm2_icon_sel_first(obj);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_e_fm2_icon_desel_any(obj);
|
_e_fm2_icon_desel_any(obj);
|
||||||
_e_fm2_icon_select(ic);
|
_e_fm2_icon_select(ic_next);
|
||||||
evas_object_smart_callback_call(sd->obj, "selection_change", NULL);
|
evas_object_smart_callback_call(sd->obj, "selection_change", NULL);
|
||||||
_e_fm2_icon_make_visible(ic);
|
_e_fm2_icon_make_visible(ic_next);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: prototype */
|
/* FIXME: prototype */
|
||||||
|
@ -4284,12 +4272,9 @@ _e_fm2_typebuf_run(Evas_Object *obj)
|
||||||
(!ic->sd->config->view.single_click)
|
(!ic->sd->config->view.single_click)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
char buf[4096], *dev = NULL;
|
char buf[4096];
|
||||||
|
|
||||||
if (ic->sd->dev) dev = eina_stringshare_ref(ic->sd->dev);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
||||||
e_fm2_path_set(ic->sd->obj, dev, buf);
|
e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
|
||||||
eina_stringshare_del(dev);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -5201,12 +5186,8 @@ _e_fm2_cb_icon_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
const char *dev = eina_stringshare_ref(ic->sd->dev);
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
||||||
e_fm2_path_set(ic->sd->obj, dev, buf);
|
e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
|
||||||
|
|
||||||
eina_stringshare_del(dev);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
|
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
|
||||||
|
@ -5263,12 +5244,8 @@ _e_fm2_cb_icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
const char *dev = eina_stringshare_ref(ic->sd->dev);
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
||||||
e_fm2_path_set(ic->sd->obj, dev, buf);
|
e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
|
||||||
|
|
||||||
eina_stringshare_del(dev);
|
|
||||||
}
|
}
|
||||||
else if ((S_ISDIR(ic->info.statinfo.st_mode)) && (ic->sd->config->view.single_click))
|
else if ((S_ISDIR(ic->info.statinfo.st_mode)) && (ic->sd->config->view.single_click))
|
||||||
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
|
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
|
||||||
|
@ -5675,12 +5652,9 @@ _e_fm2_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
(!ic->sd->config->view.single_click)
|
(!ic->sd->config->view.single_click)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
char buf[4096], *dev = NULL;
|
char buf[4096];
|
||||||
|
|
||||||
if (ic->sd->dev) dev = eina_stringshare_ref(ic->sd->dev);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
snprintf(buf, sizeof(buf), "%s/%s", ic->sd->path, ic->info.file);
|
||||||
e_fm2_path_set(ic->sd->obj, dev, buf);
|
e_fm2_path_set(ic->sd->obj, ic->sd->dev, buf);
|
||||||
eina_stringshare_del(dev);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -6237,20 +6211,18 @@ _e_fm2_smart_del(Evas_Object *obj)
|
||||||
if (sd->scroll_job) ecore_job_del(sd->scroll_job);
|
if (sd->scroll_job) ecore_job_del(sd->scroll_job);
|
||||||
if (sd->resize_job) ecore_job_del(sd->resize_job);
|
if (sd->resize_job) ecore_job_del(sd->resize_job);
|
||||||
if (sd->refresh_job) ecore_job_del(sd->refresh_job);
|
if (sd->refresh_job) ecore_job_del(sd->refresh_job);
|
||||||
if (sd->custom_theme) eina_stringshare_del(sd->custom_theme);
|
eina_stringshare_del(sd->custom_theme);
|
||||||
if (sd->custom_theme_content) eina_stringshare_del(sd->custom_theme_content);
|
eina_stringshare_del(sd->custom_theme_content);
|
||||||
if (sd->dev) eina_stringshare_del(sd->dev);
|
sd->custom_theme = sd->custom_theme_content = NULL;
|
||||||
if (sd->path) eina_stringshare_del(sd->path);
|
eina_stringshare_del(sd->dev);
|
||||||
|
eina_stringshare_del(sd->path);
|
||||||
|
eina_stringshare_del(sd->realpath);
|
||||||
|
sd->dev = sd->path = sd->realpath = NULL;
|
||||||
if (sd->mount)
|
if (sd->mount)
|
||||||
{
|
{
|
||||||
e_fm2_hal_unmount(sd->mount);
|
e_fm2_hal_unmount(sd->mount);
|
||||||
sd->mount = NULL;
|
sd->mount = NULL;
|
||||||
}
|
}
|
||||||
if (sd->realpath)
|
|
||||||
{
|
|
||||||
eina_stringshare_del(sd->realpath);
|
|
||||||
}
|
|
||||||
sd->dev = sd->path = sd->realpath = NULL;
|
|
||||||
if (sd->config) _e_fm2_config_free(sd->config);
|
if (sd->config) _e_fm2_config_free(sd->config);
|
||||||
|
|
||||||
E_FREE(sd->typebuf.buf);
|
E_FREE(sd->typebuf.buf);
|
||||||
|
@ -7749,11 +7721,11 @@ _e_fm2_live_file_add(Evas_Object *obj, const char *file, const char *file_rel, i
|
||||||
sd->live.actions = eina_list_append(sd->live.actions, a);
|
sd->live.actions = eina_list_append(sd->live.actions, a);
|
||||||
a->type = FILE_ADD;
|
a->type = FILE_ADD;
|
||||||
a->file = eina_stringshare_add(file);
|
a->file = eina_stringshare_add(file);
|
||||||
if (file_rel) a->file2 = eina_stringshare_add(file_rel);
|
a->file2 = eina_stringshare_add(file_rel);
|
||||||
a->flags = after;
|
a->flags = after;
|
||||||
if (finf) memcpy(&(a->finf), finf, sizeof(E_Fm2_Finfo));
|
if (finf) memcpy(&(a->finf), finf, sizeof(E_Fm2_Finfo));
|
||||||
if (a->finf.lnk) a->finf.lnk = eina_stringshare_add(a->finf.lnk);
|
a->finf.lnk = eina_stringshare_add(a->finf.lnk);
|
||||||
if (a->finf.rlnk) a->finf.rlnk = eina_stringshare_add(a->finf.rlnk);
|
a->finf.rlnk = eina_stringshare_add(a->finf.rlnk);
|
||||||
_e_fm2_live_process_begin(obj);
|
_e_fm2_live_process_begin(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7787,8 +7759,8 @@ _e_fm2_live_file_changed(Evas_Object *obj, const char *file, E_Fm2_Finfo *finf)
|
||||||
a->type = FILE_CHANGE;
|
a->type = FILE_CHANGE;
|
||||||
a->file = eina_stringshare_add(file);
|
a->file = eina_stringshare_add(file);
|
||||||
if (finf) memcpy(&(a->finf), finf, sizeof(E_Fm2_Finfo));
|
if (finf) memcpy(&(a->finf), finf, sizeof(E_Fm2_Finfo));
|
||||||
if (a->finf.lnk) a->finf.lnk = eina_stringshare_add(a->finf.lnk);
|
a->finf.lnk = eina_stringshare_add(a->finf.lnk);
|
||||||
if (a->finf.rlnk) a->finf.rlnk = eina_stringshare_add(a->finf.rlnk);
|
a->finf.rlnk = eina_stringshare_add(a->finf.rlnk);
|
||||||
_e_fm2_live_process_begin(obj);
|
_e_fm2_live_process_begin(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7817,10 +7789,10 @@ _e_fm2_live_process_end(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
a = sd->live.actions->data;
|
a = sd->live.actions->data;
|
||||||
sd->live.actions = eina_list_remove_list(sd->live.actions, sd->live.actions);
|
sd->live.actions = eina_list_remove_list(sd->live.actions, sd->live.actions);
|
||||||
if (a->file) eina_stringshare_del(a->file);
|
eina_stringshare_del(a->file);
|
||||||
if (a->file2) eina_stringshare_del(a->file2);
|
eina_stringshare_del(a->file2);
|
||||||
if (a->finf.lnk) eina_stringshare_del(a->finf.lnk);
|
eina_stringshare_del(a->finf.lnk);
|
||||||
if (a->finf.rlnk) eina_stringshare_del(a->finf.rlnk);
|
eina_stringshare_del(a->finf.rlnk);
|
||||||
free(a);
|
free(a);
|
||||||
}
|
}
|
||||||
if (sd->live.idler)
|
if (sd->live.idler)
|
||||||
|
@ -7923,10 +7895,10 @@ _e_fm2_live_process(Evas_Object *obj)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (a->file) eina_stringshare_del(a->file);
|
eina_stringshare_del(a->file);
|
||||||
if (a->file2) eina_stringshare_del(a->file2);
|
eina_stringshare_del(a->file2);
|
||||||
if (a->finf.lnk) eina_stringshare_del(a->finf.lnk);
|
eina_stringshare_del(a->finf.lnk);
|
||||||
if (a->finf.rlnk) eina_stringshare_del(a->finf.rlnk);
|
eina_stringshare_del(a->finf.rlnk);
|
||||||
free(a);
|
free(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,7 @@ main(int argc, char **argv)
|
||||||
type = E_FM_OP_MOVE;
|
type = E_FM_OP_MOVE;
|
||||||
else if (strcmp(argv[1], "rm") == 0)
|
else if (strcmp(argv[1], "rm") == 0)
|
||||||
type = E_FM_OP_REMOVE;
|
type = E_FM_OP_REMOVE;
|
||||||
|
else return 0;
|
||||||
|
|
||||||
if ((type == E_FM_OP_COPY) || (type == E_FM_OP_MOVE))
|
if ((type == E_FM_OP_COPY) || (type == E_FM_OP_MOVE))
|
||||||
{
|
{
|
||||||
|
@ -698,7 +699,7 @@ _e_fm_op_scan_idler(void *data)
|
||||||
else
|
else
|
||||||
task->started = 1;
|
task->started = 1;
|
||||||
}
|
}
|
||||||
else if (!task->started)
|
else if (dir && !task->started)
|
||||||
{
|
{
|
||||||
de = readdir(dir);
|
de = readdir(dir);
|
||||||
|
|
||||||
|
|
|
@ -1419,6 +1419,8 @@ _e_fwin_file_open_dialog(E_Fwin *fwin, Eina_List *files, int always)
|
||||||
else if (fwin->zone)
|
else if (fwin->zone)
|
||||||
dia = e_dialog_new(fwin->zone->container,
|
dia = e_dialog_new(fwin->zone->container,
|
||||||
"E", "_fwin_open_apps");
|
"E", "_fwin_open_apps");
|
||||||
|
else return; /* make clang happy */
|
||||||
|
|
||||||
e_dialog_title_set(dia, _("Open with..."));
|
e_dialog_title_set(dia, _("Open with..."));
|
||||||
e_dialog_resizable_set(dia, 1);
|
e_dialog_resizable_set(dia, 1);
|
||||||
e_dialog_button_add(dia, _("Open"), "enlightenment/open",
|
e_dialog_button_add(dia, _("Open"), "enlightenment/open",
|
||||||
|
@ -1766,7 +1768,7 @@ _e_fwin_toolbar_resize(E_Fwin *fwin)
|
||||||
w = (fwin->win->w - fwin->tbar->w);
|
w = (fwin->win->w - fwin->tbar->w);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
evas_object_move(fwin->scrollframe_obj, x, y);
|
evas_object_move(fwin->scrollframe_obj, x, y);
|
||||||
evas_object_resize(fwin->scrollframe_obj, w, h);
|
evas_object_resize(fwin->scrollframe_obj, w, h);
|
||||||
|
|
Loading…
Reference in New Issue