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.

Reply via email to