This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository efm2.
View the commit online.
commit 0219b28df5049ea221cf84317a65962eb28a225f
Author: Carsten Haitzler (Rasterman) <[email protected]>
AuthorDate: Thu Sep 11 18:18:08 2025 +0100
add over and badge icon imgs and support them
desktop file also changhed location for director desktops to
.efm/.efm.dir.desktop
---
src/backends/default/open.c | 7 +++++++
src/efm/efm_back_end.c | 6 ++++++
src/efm/efm_structs.h | 4 ++++
src/efm/efm_util.c | 38 +++++++++++++++++++++++++++++++++++++-
4 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/src/backends/default/open.c b/src/backends/default/open.c
index d494194..09eba60 100644
--- a/src/backends/default/open.c
+++ b/src/backends/default/open.c
@@ -745,6 +745,13 @@ _file_add_mod_desktop_fields_append(Eina_Strbuf *strbuf, Efreet_Desktop *d,
KEY("desktop-icon-selected");
_cmd_desktop_x_field_icon_resolve_append(strbuf, d, KEYSTR(),
"X-IconSelected", path, st);
+ KEY("desktop-icon-over");
+ _cmd_desktop_x_field_icon_resolve_append(strbuf, d, KEYSTR(),
+ "X-IconOver", path, st);
+ KEY("desktop-icon-badge");
+ _cmd_desktop_x_field_icon_resolve_append(strbuf, d, KEYSTR(),
+ "X-IconBadge", path, st);
+ fprintf(stderr, "FIELDS %s :: %s\n", path, KEYSTR());
KEY("desktop-try-exec");
cmd_strbuf_append(strbuf, KEYSTR(), STREMPTY(d->try_exec));
diff --git a/src/efm/efm_back_end.c b/src/efm/efm_back_end.c
index cf5ac1b..165da13 100644
--- a/src/efm/efm_back_end.c
+++ b/src/efm/efm_back_end.c
@@ -365,6 +365,12 @@ _icon_add_mod_props_get(Icon *icon, Cmd *c, const char *label)
s = cmd_key_find(c, "link-desktop-icon-selected");
if (!s) s = cmd_key_find(c, "desktop-icon-selected");
if (s) eina_stringshare_replace(&(icon->info.icon_selected), s);
+ s = cmd_key_find(c, "link-desktop-icon-over");
+ if (!s) s = cmd_key_find(c, "desktop-icon-over");
+ if (s) eina_stringshare_replace(&(icon->info.icon_over), s);
+ s = cmd_key_find(c, "link-desktop-icon-badge");
+ if (!s) s = cmd_key_find(c, "desktop-icon-badge");
+ if (s) eina_stringshare_replace(&(icon->info.icon_badge), s);
s = cmd_key_find(c, "mime-icon");
if (s) eina_stringshare_replace(&(icon->info.mime_icon), s);
s = cmd_key_find(c, "thumb");
diff --git a/src/efm/efm_structs.h b/src/efm/efm_structs.h
index e5f1b8c..f73b3f6 100644
--- a/src/efm/efm_structs.h
+++ b/src/efm/efm_structs.h
@@ -153,6 +153,8 @@ struct _File_Info
const char *icon;
const char *icon_selected;
const char *icon_clicked;
+ const char *icon_over;
+ const char *icon_badge;
const char *mime_icon;
const char *pre_lookup_icon;
const char *thumb;
@@ -180,6 +182,8 @@ struct _Icon
Eina_Rectangle geom;
Evas_Object *o_base;
Evas_Object *o_icon;
+ Evas_Object *o_icon_over;
+ Evas_Object *o_icon_badge;
Evas_Object *o_entry;
Evas_Object *o_list_detail_swallow[6];
Evas_Object *o_list_detail_swallow2[6];
diff --git a/src/efm/efm_util.c b/src/efm/efm_util.c
index 701afb3..27fc823 100644
--- a/src/efm/efm_util.c
+++ b/src/efm/efm_util.c
@@ -499,6 +499,16 @@ _icon_object_clear(Icon *icon)
evas_object_del(icon->o_icon);
icon->o_icon = NULL;
}
+ if (icon->o_icon_over)
+ {
+ evas_object_del(icon->o_icon_over);
+ icon->o_icon_over = NULL;
+ }
+ if (icon->o_icon_badge)
+ {
+ evas_object_del(icon->o_icon_badge);
+ icon->o_icon_badge = NULL;
+ }
if (icon->o_entry)
{
evas_object_del(icon->o_entry);
@@ -1165,6 +1175,8 @@ _icon_dup(Icon *icon)
DUPSTRSHARE(icon);
DUPSTRSHARE(icon_selected);
DUPSTRSHARE(icon_clicked);
+ DUPSTRSHARE(icon_over);
+ DUPSTRSHARE(icon_badge);
DUPSTRSHARE(mime_icon);
DUPSTRSHARE(pre_lookup_icon);
DUPSTRSHARE(thumb);
@@ -2339,7 +2351,29 @@ _icon_object_add(Icon *icon, Smart_Data *sd, Evas *e,
}
_icon_text_update(icon);
edje_object_part_swallow(icon->o_base, "e.swallow.icon", o);
- evas_object_show(icon->o_icon);
+ evas_object_show(o);
+
+ if (icon->info.icon_over)
+ { // overlay icon file
+ icon->o_icon_over = o = efm_icon_add(o);
+ if (_file_video_is(icon->info.icon_over))
+ efm_icon_video_set(o, icon->info.icon_over);
+ else
+ efm_icon_file_set(o, icon->info.icon_over);
+ edje_object_part_swallow(icon->o_base, "e.swallow.icon_over", o);
+ evas_object_show(o);
+ }
+ if (icon->info.icon_badge)
+ { // badge icon file
+ icon->o_icon_badge = o = efm_icon_add(o);
+ if (_file_video_is(icon->info.icon_badge))
+ efm_icon_video_set(o, icon->info.icon_badge);
+ else
+ efm_icon_file_set(o, icon->info.icon_badge);
+ edje_object_part_swallow(icon->o_base, "e.swallow.icon_badge", o);
+ evas_object_show(o);
+ }
+
if (clip_set)
{
evas_object_smart_member_add(icon->o_base, sd->o_smart);
@@ -2433,6 +2467,8 @@ _icon_free(Icon *icon)
eina_stringshare_replace(&icon->info.icon, NULL);
eina_stringshare_replace(&icon->info.icon_selected, NULL);
eina_stringshare_replace(&icon->info.icon_clicked, NULL);
+ eina_stringshare_replace(&icon->info.icon_over, NULL);
+ eina_stringshare_replace(&icon->info.icon_badge, NULL);
eina_stringshare_replace(&icon->info.mime_icon, NULL);
eina_stringshare_replace(&icon->info.pre_lookup_icon, NULL);
eina_stringshare_replace(&icon->info.thumb, NULL);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.