summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-01-01 22:19:51 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-01-02 09:51:57 +0900
commit3779086a638ec5e30bc102fefa17e34d91d17767 (patch)
tree40f53c90753c265646e5f1dada0c759022ec14d9 /src
parent227d49e346941e86c584588420db94309b0dbe4d (diff)
downloadenlightenment-3779086a638ec5e30bc102fefa17e34d91d17767.tar.gz
e icon - use new skip header async preload to make icon loads async
now they can be trule async hopefully stopping things like application menu from stalling while loading icons header... which is really nasty with svg's. this actually makes icons async by default which is really EXACTLY what you want. this also prepares for later making edje loads async. @feature
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_dialog.c6
-rw-r--r--src/bin/e_fm.c4
-rw-r--r--src/bin/e_icon.c187
-rw-r--r--src/bin/e_icon.h2
-rw-r--r--src/bin/e_utils.c3
-rw-r--r--src/bin/e_widget_image.c9
-rw-r--r--src/bin/e_xkb.c1
-rw-r--r--src/modules/conf_display/e_int_config_desklock.c6
-rw-r--r--src/modules/conf_theme/e_int_config_xsettings.c14
-rw-r--r--src/modules/everything/evry_util.c6
-rw-r--r--src/modules/ibar/e_mod_main.c4
-rw-r--r--src/modules/ibox/e_mod_main.c4
-rw-r--r--src/modules/notification/e_mod_popup.c11
-rw-r--r--src/modules/systray/e_mod_notifier_host.c6
-rw-r--r--src/modules/tasks/e_mod_main.c2
-rw-r--r--src/modules/winlist/e_winlist.c6
16 files changed, 135 insertions, 136 deletions
diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c
index 2b0435b928..d9639bef40 100644
--- a/src/bin/e_dialog.c
+++ b/src/bin/e_dialog.c
@@ -176,11 +176,7 @@ e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size)
evas_object_show(dia->icon_object);
}
if (!e_util_icon_theme_set(dia->icon_object, icon))
- if (!e_icon_file_edje_set(dia->icon_object, icon, "icon"))
- {
- E_FREE_FUNC(dia->icon_object, evas_object_del);
- return;
- }
+ e_icon_file_edje_set(dia->icon_object, icon, "icon");
evas_object_size_hint_min_set(dia->icon_object, size * e_scale, size * e_scale);
elm_layout_signal_emit(dia->bg_object, "e,state,icon", "e");
elm_layout_signal_emit(dia->bg_object, "e,icon,enabled", "e");
diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index b05ef1ec74..048c4d235c 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -11517,9 +11517,9 @@ _update_volume_icon(E_Volume *v, E_Fm2_Icon *ic)
if (e)
{
if (ic->info.removable_full)
- edje_object_signal_emit(e, "e,state,removable,full", "e");
+ e_icon_edje_emit(ic->obj_icon, "e,state,removable,full", "e");
else
- edje_object_signal_emit(e, "e,state,removable,empty", "e");
+ e_icon_edje_emit(ic->obj_icon, "e,state,removable,empty", "e");
}
if (v)
diff --git a/src/bin/e_icon.c b/src/bin/e_icon.c
index 305fcfd8e8..2e4ed79f8e 100644
--- a/src/bin/e_icon.c
+++ b/src/bin/e_icon.c
@@ -217,20 +217,22 @@ _handle_anim(E_Smart_Data *sd)
return 1;
}
-E_API Eina_Bool
+E_API void
e_icon_file_set(Evas_Object *obj, const char *file)
{
E_Smart_Data *sd;
int len;
- if (!file) return EINA_FALSE;
- if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0);
- if (!(sd = evas_object_smart_data_get(obj)))
- return EINA_FALSE;
+ if (!file) return;
+ if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR();
+ if (!(sd = evas_object_smart_data_get(obj))) return;
len = strlen(file);
if ((len > 4) && (!strcasecmp(file + len - 4, ".edj")))
- return e_icon_file_edje_set(obj, file, "icon");
+ {
+ e_icon_file_edje_set(obj, file, "icon");
+ return;
+ }
/* smart code here */
_e_icon_obj_prepare(obj, sd);
@@ -258,13 +260,15 @@ e_icon_file_set(Evas_Object *obj, const char *file)
if (_e_icon_cache_find(obj, file))
{
_e_icon_smart_reconfigure(sd);
- return EINA_TRUE;
+ return;
}
#endif
+ if (sd->preload)
+ evas_object_image_load_head_skip_set(sd->obj, EINA_TRUE);
evas_object_image_file_set(sd->obj, file, NULL);
- if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
- return EINA_FALSE;
+// if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
+// return EINA_FALSE;
if (!_handle_anim(sd))
{
@@ -294,17 +298,15 @@ e_icon_file_set(Evas_Object *obj, const char *file)
#endif
_e_icon_smart_reconfigure(sd);
- return EINA_TRUE;
}
-E_API Eina_Bool
+E_API void
e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key)
{
E_Smart_Data *sd;
- if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0);
- if (!(sd = evas_object_smart_data_get(obj)))
- return EINA_FALSE;
+ if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR();
+ if (!(sd = evas_object_smart_data_get(obj))) return;
/* smart code here */
sd->loading = 0;
@@ -327,8 +329,8 @@ e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key)
evas_object_image_load_size_set(sd->obj, sd->size, sd->size);
if (sd->preload) evas_object_hide(sd->obj);
evas_object_image_file_set(sd->obj, file, key);
- if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
- return EINA_FALSE;
+// if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
+// return EINA_FALSE;
if (!_handle_anim(sd))
{
if (sd->preload)
@@ -340,7 +342,6 @@ e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key)
evas_object_show(sd->obj);
}
_e_icon_smart_reconfigure(sd);
- return EINA_TRUE;
}
E_API void
@@ -385,14 +386,13 @@ e_icon_edje_get(Evas_Object *obj)
return sd->edje ? sd->obj : NULL;
}
-E_API Eina_Bool
+E_API void
e_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part)
{
E_Smart_Data *sd;
- if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0);
- if (!(sd = evas_object_smart_data_get(obj)))
- return EINA_FALSE;
+ if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR();
+ if (!(sd = evas_object_smart_data_get(obj))) return;
/* smart code here */
if (sd->obj) evas_object_del(sd->obj);
@@ -413,27 +413,29 @@ e_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part)
sd->obj = edje_object_add(evas_object_evas_get(obj));
edje_object_file_set(sd->obj, file, part);
- if (edje_object_load_error_get(sd->obj) != EDJE_LOAD_ERROR_NONE)
- return EINA_FALSE;
+// if (edje_object_load_error_get(sd->obj) != EDJE_LOAD_ERROR_NONE)
+// return EINA_FALSE;
if (evas_object_visible_get(obj)) evas_object_show(sd->obj);
evas_object_smart_member_add(sd->obj, obj);
_e_icon_smart_reconfigure(sd);
- return EINA_TRUE;
}
-E_API Eina_Bool
+E_API void
e_icon_fdo_icon_set(Evas_Object *obj, const char *icon)
{
E_Smart_Data *sd;
const char *path;
int len;
- if (!icon) return EINA_FALSE;
- if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0);
- if (icon[0] == '/') return e_icon_file_set(obj, icon);
+ if (!icon) return;
+ if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR();
+ if (icon[0] == '/')
+ {
+ e_icon_file_set(obj, icon);
+ return;
+ }
- if (!(sd = evas_object_smart_data_get(obj)))
- return EINA_FALSE;
+ if (!(sd = evas_object_smart_data_get(obj))) return;
if (sd->timer) ecore_timer_del(sd->timer);
sd->timer = NULL;
@@ -444,19 +446,22 @@ e_icon_fdo_icon_set(Evas_Object *obj, const char *icon)
sd->edje = EINA_FALSE;
eina_stringshare_replace(&sd->fdo, icon);
- if (!sd->fdo) return EINA_FALSE;
+ if (!sd->fdo) return;
path = efreet_icon_path_find(e_config->icon_theme, sd->fdo, sd->size);
if (!path)
{
if (e_util_strcmp(e_config->icon_theme, "hicolor"))
path = efreet_icon_path_find("hicolor", sd->fdo, sd->size);
- if (!path) return EINA_FALSE;
+ if (!path) return;
}
len = strlen(icon);
if ((len > 4) && (!strcasecmp(icon + len - 4, ".edj")))
- return e_icon_file_edje_set(obj, path, "icon");
+ {
+ e_icon_file_edje_set(obj, path, "icon");
+ return;
+ }
/* smart code here */
_e_icon_obj_prepare(obj, sd);
@@ -465,8 +470,8 @@ e_icon_fdo_icon_set(Evas_Object *obj, const char *icon)
evas_object_image_load_size_set(sd->obj, sd->size, sd->size);
if (sd->preload) evas_object_hide(sd->obj);
evas_object_image_file_set(sd->obj, path, NULL);
- if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
- return EINA_FALSE;
+// if (evas_object_image_load_error_get(sd->obj) != EVAS_LOAD_ERROR_NONE)
+// return EINA_FALSE;
if (sd->preload)
{
sd->loading = 1;
@@ -475,7 +480,7 @@ e_icon_fdo_icon_set(Evas_Object *obj, const char *icon)
else if (evas_object_visible_get(obj))
evas_object_show(sd->obj);
_e_icon_smart_reconfigure(sd);
- return EINA_TRUE;
+ return;
}
E_API void
@@ -723,6 +728,16 @@ e_icon_selected_set(const Evas_Object *obj, Eina_Bool selected)
edje_object_signal_emit(sd->obj, "e,state,unselected", "e");
}
+E_API void
+e_icon_edje_emit(const Evas_Object *obj, const char *sig, const char *src)
+{
+ E_Smart_Data *sd;
+
+ if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR();
+ if (!(sd = evas_object_smart_data_get(obj))) return;
+ edje_object_signal_emit(sd->obj, sig, src);
+}
+
/* local subsystem globals */
static void
_e_icon_smart_reconfigure(E_Smart_Data *sd)
@@ -731,61 +746,62 @@ _e_icon_smart_reconfigure(E_Smart_Data *sd)
Evas_Coord x, y, w, h;
if (!sd->obj) return;
- if (sd->edje)
+ w = sd->w;
+ h = sd->h;
+ x = sd->x;
+ y = sd->y;
+ if (!sd->loading)
{
- w = sd->w;
- h = sd->h;
- x = sd->x;
- y = sd->y;
- evas_object_move(sd->obj, x, y);
- evas_object_resize(sd->obj, w, h);
- evas_object_move(sd->eventarea, x, y);
- evas_object_resize(sd->eventarea, w, h);
- }
- else
- {
- iw = 0;
- ih = 0;
- evas_object_image_size_get(sd->obj, &iw, &ih);
- if (iw < 1) iw = 1;
- if (ih < 1) ih = 1;
-
- if (sd->fill_inside)
+ if (sd->edje)
{
- w = sd->w;
- h = ((double)ih * w) / (double)iw;
- if (h > sd->h)
- {
- h = sd->h;
- w = ((double)iw * h) / (double)ih;
- }
+ evas_object_move(sd->obj, x, y);
+ evas_object_resize(sd->obj, w, h);
}
else
{
- w = sd->w;
- h = ((double)ih * w) / (double)iw;
- if (h < sd->h)
+ iw = 0;
+ ih = 0;
+ evas_object_image_size_get(sd->obj, &iw, &ih);
+ if (iw < 1) iw = 1;
+ if (ih < 1) ih = 1;
+
+ if (sd->fill_inside)
{
- h = sd->h;
- w = ((double)iw * h) / (double)ih;
+ w = sd->w;
+ h = ((double)ih * w) / (double)iw;
+ if (h > sd->h)
+ {
+ h = sd->h;
+ w = ((double)iw * h) / (double)ih;
+ }
}
- }
- if (!sd->scale_up)
- {
- if ((w > iw) || (h > ih))
+ else
{
- w = iw;
- h = ih;
+ w = sd->w;
+ h = ((double)ih * w) / (double)iw;
+ if (h < sd->h)
+ {
+ h = sd->h;
+ w = ((double)iw * h) / (double)ih;
+ }
}
+ if (!sd->scale_up)
+ {
+ if ((w > iw) || (h > ih))
+ {
+ w = iw;
+ h = ih;
+ }
+ }
+ x = sd->x + ((sd->w - w) / 2);
+ y = sd->y + ((sd->h - h) / 2);
+ evas_object_move(sd->obj, x, y);
+ evas_object_image_fill_set(sd->obj, 0, 0, w, h);
+ evas_object_resize(sd->obj, w, h);
}
- x = sd->x + ((sd->w - w) / 2);
- y = sd->y + ((sd->h - h) / 2);
- evas_object_move(sd->obj, x, y);
- evas_object_image_fill_set(sd->obj, 0, 0, w, h);
- evas_object_resize(sd->obj, w, h);
- evas_object_move(sd->eventarea, x, y);
- evas_object_resize(sd->eventarea, w, h);
}
+ evas_object_move(sd->eventarea, x, y);
+ evas_object_resize(sd->eventarea, w, h);
}
static void
@@ -820,7 +836,7 @@ _e_icon_preloaded(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
evas_object_smart_callback_call(data, "preloaded", NULL);
evas_object_show(sd->obj);
sd->loading = 0;
-
+ _e_icon_smart_reconfigure(sd);
#ifdef USE_ICON_CACHE
_e_icon_cache_icon_loaded(sd->ci);
#endif
@@ -832,13 +848,15 @@ _e_icon_smart_add(Evas_Object *obj)
E_Smart_Data *sd;
if (!(sd = calloc(1, sizeof(E_Smart_Data)))) return;
- sd->eventarea = evas_object_rectangle_add(evas_object_evas_get(obj));
- evas_object_color_set(sd->eventarea, 0, 0, 0, 0);
- evas_object_smart_member_add(sd->eventarea, obj);
sd->obj = evas_object_image_add(evas_object_evas_get(obj));
evas_object_event_callback_add(sd->obj, EVAS_CALLBACK_IMAGE_PRELOADED,
_e_icon_preloaded, obj);
+
+ sd->eventarea = evas_object_rectangle_add(evas_object_evas_get(obj));
+ evas_object_color_set(sd->eventarea, 0, 0, 0, 0);
+ evas_object_smart_member_add(sd->eventarea, obj);
+
sd->x = 0;
sd->y = 0;
sd->w = 0;
@@ -846,6 +864,7 @@ _e_icon_smart_add(Evas_Object *obj)
sd->fill_inside = 1;
sd->scale_up = 1;
sd->size = 64;
+ sd->preload = 0;
evas_object_smart_member_add(sd->obj, obj);
evas_object_smart_data_set(obj, sd);
}
diff --git a/src/bin/e_icon.h b/src/bin/e_icon.h
index 3c08d4a01a..d7fcabbd7f 100644
--- a/src/bin/e_icon.h
+++ b/src/bin/e_icon.h
@@ -31,6 +31,6 @@ E_API void *e_icon_data_get (const Evas_Object *obj, int *w, int
E_API void e_icon_scale_size_set (Evas_Object *obj, int size);
E_API int e_icon_scale_size_get (const Evas_Object *obj);
E_API void e_icon_selected_set (const Evas_Object *obj, Eina_Bool selected);
-
+E_API void e_icon_edje_emit (const Evas_Object *obj, const char *sig, const char *src);
#endif
#endif
diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c
index 5db1631d35..24d58292e1 100644
--- a/src/bin/e_utils.c
+++ b/src/bin/e_utils.c
@@ -224,7 +224,8 @@ e_util_icon_theme_set(Evas_Object *obj, const char *icon)
{
if (icon && (icon[0] == '/'))
{
- if (e_icon_file_set(obj, icon)) return 1;
+ e_icon_file_set(obj, icon);
+ return 1;
}
if (e_config->icon_theme_overrides)
{
diff --git a/src/bin/e_widget_image.c b/src/bin/e_widget_image.c
index d792edf6dc..2196ae3a77 100644
--- a/src/bin/e_widget_image.c
+++ b/src/bin/e_widget_image.c
@@ -49,19 +49,14 @@ e_widget_image_add_from_file(Evas *evas, const char *file, int minw, int minh)
Evas_Object *obj, *o;
E_Widget_Data *wd;
+ if (!ecore_file_exists(file)) return NULL;
obj = e_widget_add(evas);
wd = calloc(1, sizeof(E_Widget_Data));
if (!wd) return NULL;
o = e_icon_add(evas);
e_icon_fill_inside_set(o, 1);
- if (!e_icon_file_set(o, file))
- {
- evas_object_del(o);
- free(wd);
- evas_object_del(obj);
- return NULL;
- }
+ e_icon_file_set(o, file);
wd->img = o;
evas_object_show(o);
diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c
index acabc51510..bd17e2c8da 100644
--- a/src/bin/e_xkb.c
+++ b/src/bin/e_xkb.c
@@ -459,6 +459,7 @@ e_xkb_e_icon_flag_setup(Evas_Object *eicon, const char *name)
char buf[PATH_MAX];
e_xkb_flag_file_get(buf, sizeof(buf), name);
+ e_icon_preload_set(eicon, EINA_FALSE);
e_icon_file_set(eicon, buf);
e_icon_size_get(eicon, &w, &h);
edje_extern_object_aspect_set(eicon, EDJE_ASPECT_CONTROL_BOTH, w, h);
diff --git a/src/modules/conf_display/e_int_config_desklock.c b/src/modules/conf_display/e_int_config_desklock.c
index cfd2f9ac3a..bb62f1a657 100644
--- a/src/modules/conf_display/e_int_config_desklock.c
+++ b/src/modules/conf_display/e_int_config_desklock.c
@@ -316,11 +316,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
}
e_xkb_flag_file_get(buf, sizeof(buf), name);
icon = e_icon_add(evas);
- if (!e_icon_file_set(icon, buf))
- {
- evas_object_del(icon);
- icon = NULL;
- }
+ e_icon_file_set(icon, buf);
if (cl->variant)
snprintf(buf, sizeof(buf), "%s (%s, %s)", cl->name, cl->model, cl->variant);
else
diff --git a/src/modules/conf_theme/e_int_config_xsettings.c b/src/modules/conf_theme/e_int_config_xsettings.c
index 08f60c5a89..abfb757df8 100644
--- a/src/modules/conf_theme/e_int_config_xsettings.c
+++ b/src/modules/conf_theme/e_int_config_xsettings.c
@@ -336,14 +336,8 @@ _icon_new(Evas *evas, const char *theme, const char *icon, unsigned int size)
if (!(path = efreet_icon_path_find(theme, icon, size))) return NULL;
o = e_icon_add(evas);
- if (e_icon_file_set(o, path))
- e_icon_fill_inside_set(o, 1);
- else
- {
- evas_object_del(o);
- o = NULL;
- }
-
+ e_icon_file_set(o, path);
+ e_icon_fill_inside_set(o, EINA_TRUE);
return o;
}
@@ -359,8 +353,8 @@ _populate_icon_preview(E_Config_Dialog_Data *cfdata)
if (!(path = efreet_icon_path_find(t, _icon_previews[i], PREVIEW_SIZE)))
continue;
- if (e_icon_file_set(cfdata->gui.icon_preview[i], path))
- e_icon_fill_inside_set(cfdata->gui.icon_preview[i], EINA_TRUE);
+ e_icon_file_set(cfdata->gui.icon_preview[i], path);
+ e_icon_fill_inside_set(cfdata->gui.icon_preview[i], EINA_TRUE);
}
}
diff --git a/src/modules/everything/evry_util.c b/src/modules/everything/evry_util.c
index 0552b3ae7a..33b59c39e8 100644
--- a/src/modules/everything/evry_util.c
+++ b/src/modules/everything/evry_util.c
@@ -441,11 +441,7 @@ evry_icon_theme_get(const char *icon, Evas *e)
if (icon[0] == '/')
{
- if (!e_icon_file_set(o, icon))
- {
- evas_object_del(o);
- o = NULL;
- }
+ e_icon_file_set(o, icon);
}
else if (!e_util_icon_theme_set(o, icon))
{
diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index d5b6458308..1b949de470 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -972,11 +972,11 @@ _ibar_icon_signal_emit(IBar_Icon *ic, const char *sig, const char *src)
if (ic->o_holder)
edje_object_signal_emit(ic->o_holder, sig, src);
if (ic->o_icon && e_icon_edje_get(ic->o_icon))
- edje_object_signal_emit(e_icon_edje_get(ic->o_icon), sig, src);
+ e_icon_edje_emit(ic->o_icon, sig, src);
if (ic->o_holder2)
edje_object_signal_emit(ic->o_holder2, sig, src);
if (ic->o_icon2 && e_icon_edje_get(ic->o_icon2))
- edje_object_signal_emit(e_icon_edje_get(ic->o_icon2), sig, src);
+ e_icon_edje_emit(ic->o_icon2, sig, src);
}
static void
diff --git a/src/modules/ibox/e_mod_main.c b/src/modules/ibox/e_mod_main.c
index df755d7a6c..7d0f4be558 100644
--- a/src/modules/ibox/e_mod_main.c
+++ b/src/modules/ibox/e_mod_main.c
@@ -635,11 +635,11 @@ _ibox_icon_signal_emit(IBox_Icon *ic, char *sig, char *src)
if (ic->o_holder)
edje_object_signal_emit(ic->o_holder, sig, src);
if (ic->o_icon && e_icon_edje_get(ic->o_icon))
- edje_object_signal_emit(e_icon_edje_get(ic->o_icon), sig, src);
+ e_icon_edje_emit(ic->o_icon, sig, src);
if (ic->o_holder2)
edje_object_signal_emit(ic->o_holder2, sig, src);
if (ic->o_icon2 && e_icon_edje_get(ic->o_icon2))
- edje_object_signal_emit(e_icon_edje_get(ic->o_icon2), sig, src);
+ e_icon_edje_emit(ic->o_icon2, sig, src);
}
static Eina_List *
diff --git a/src/modules/notification/e_mod_popup.c b/src/modules/notification/e_mod_popup.c
index d8f5739db3..9d1e24fb1a 100644
--- a/src/modules/notification/e_mod_popup.c
+++ b/src/modules/notification/e_mod_popup.c
@@ -470,12 +470,11 @@ _notification_popup_refresh(Popup_Data *popup)
if (!popup->app_icon)
{
popup->app_icon = e_icon_add(popup->e);
- if (!e_icon_file_set(popup->app_icon, uri ? uri->path : icon_path))
- {
- evas_object_del(popup->app_icon);
- popup->app_icon = NULL;
- }
- else e_icon_size_get(popup->app_icon, &w, &h);
+ e_icon_file_set(popup->app_icon, uri ? uri->path : icon_path);
+ // XXX: FIXME: this disallows for async to work
+ // e_icon_size_get(popup->app_icon, &w, &h);
+ w = width;
+ h = height;
}
efreet_uri_free(uri);
}
diff --git a/src/modules/systray/e_mod_notifier_host.c b/src/modules/systray/e_mod_notifier_host.c
index 81c4e5920a..46a239502a 100644
--- a/src/modules/systray/e_mod_notifier_host.c
+++ b/src/modules/systray/e_mod_notifier_host.c
@@ -93,7 +93,11 @@ image_load(const char *name, const char *path, uint32_t *imgdata, int w, int h,
for (ext = exts; *ext; ext++)
{
snprintf(buf, sizeof(buf), "%s/%s/%ux%u/apps/%s%s", path, *theme, *i, *i, name, *ext);
- if (e_icon_file_set(image, buf)) return;
+ if (ecore_file_exists(buf))
+ {
+ e_icon_file_set(image, buf);
+ return;
+ }
}
}
}
diff --git a/src/modules/tasks/e_mod_main.c b/src/modules/tasks/e_mod_main.c
index 5010ca6ad5..ef75cf40b8 100644
--- a/src/modules/tasks/e_mod_main.c
+++ b/src/modules/tasks/e_mod_main.c
@@ -723,7 +723,7 @@ _tasks_item_signal_emit(Tasks_Item *item, char *sig, char *src)
{
if (item->o_item) edje_object_signal_emit(item->o_item, sig, src);
if (item->o_icon && e_icon_edje_get(item->o_icon))
- edje_object_signal_emit(e_icon_edje_get(item->o_icon), sig, src);
+ e_icon_edje_emit(item->o_icon, sig, src);
}
static Config_Item *
diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c
index b8ac20ef3c..d7ff140ed6 100644
--- a/src/modules/winlist/e_winlist.c
+++ b/src/modules/winlist/e_winlist.c
@@ -773,8 +773,7 @@ _e_winlist_activate(void)
ww = _win_selected->data;
edje_object_signal_emit(ww->bg_object, "e,state,selected", "e");
if (ww->icon_object && e_icon_edje_get(ww->icon_object))
- edje_object_signal_emit(e_icon_edje_get(ww->icon_object),
- "e,state,selected", "e");
+ e_icon_edje_emit(ww->icon_object, "e,state,selected", "e");
if ((ww->client->iconic) &&
(e_config->winlist_list_uncover_while_selecting))
@@ -868,8 +867,7 @@ _e_winlist_deactivate(void)
edje_object_part_text_set(_bg_object, "e.text.label", "");
edje_object_signal_emit(ww->bg_object, "e,state,unselected", "e");
if (ww->icon_object && e_icon_edje_get(ww->icon_object))
- edje_object_signal_emit(e_icon_edje_get(ww->icon_object),
- "e,state,unselected", "e");
+ e_icon_edje_emit(ww->icon_object, "e,state,unselected", "e");
if (!ww->client->lock_focus_in)
evas_object_focus_set(ww->client->frame, 0);
}