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 a826a75fea2e7f94282a2bdf3a931b6efabfb288
Author: Carsten Haitzler (Rasterman) <[email protected]>
AuthorDate: Sat Jun 20 10:35:43 2026 +0100

    remove pointless obj dels in smart del and handle refocus attempts
---
 src/efm/efm.c         |  2 ++
 src/efm/efm_graph.c   | 12 ------------
 src/efm/efm_icon.c    | 15 ---------------
 src/efm/efm_structs.h |  2 +-
 4 files changed, 3 insertions(+), 28 deletions(-)

diff --git a/src/efm/efm.c b/src/efm/efm.c
index 5b5cdc4..651d81a 100644
--- a/src/efm/efm.c
+++ b/src/efm/efm.c
@@ -93,6 +93,7 @@ _cb_focus_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
 {
   Smart_Data *sd = data;
 
+  if (sd->in_del) return;
   //  printf("XXX: FOCUS OUT CLIP\n");
   if (sd->refocus_job) ecore_job_del(sd->refocus_job);
   sd->refocus_job = ecore_job_add(_cb_refocus, sd);
@@ -581,6 +582,7 @@ _smart_del(Evas_Object *obj)
   const char       *s;
   ENTRY;
 
+  sd->in_del = EINA_TRUE;
   efm_menu_provider_select(sd->o_smart, -1);
   _efm_list = eina_list_remove(_efm_list, obj);
   e         = evas_object_evas_get(obj);
diff --git a/src/efm/efm_graph.c b/src/efm/efm_graph.c
index 727f4b7..76e31c2 100644
--- a/src/efm/efm_graph.c
+++ b/src/efm/efm_graph.c
@@ -80,24 +80,12 @@ static void
 _smart_del(Evas_Object *obj)
 { // delete/free efm view
   ENTRY;
-  int i;
 
   if (sd->o_vals)
     {
-      for (i = 0; i < sd->num; i++) evas_object_del(sd->o_vals[i]);
       free(sd->o_vals);
       sd->o_vals = NULL;
     }
-  if (sd->o_grid)
-    {
-      evas_object_del(sd->o_grid);
-      sd->o_grid = NULL;
-    }
-  if (sd->o_base)
-    {
-      evas_object_del(sd->o_base);
-      sd->o_base = NULL;
-    }
   eina_stringshare_replace(&sd->colorspec, NULL);
   sd->o_smart = NULL;
 
diff --git a/src/efm/efm_icon.c b/src/efm/efm_icon.c
index 0530ee4..43d6f45 100644
--- a/src/efm/efm_icon.c
+++ b/src/efm/efm_icon.c
@@ -535,21 +535,6 @@ _smart_del(Evas_Object *obj)
       ecore_thread_cancel(sd->thread_mono_check);
       sd->thread_mono_check = NULL;
     }
-  if (sd->o_image)
-    {
-      evas_object_del(sd->o_image);
-      sd->o_image = NULL;
-    }
-  if (sd->o_image2)
-    {
-      evas_object_del(sd->o_image2);
-      sd->o_image2 = NULL;
-    }
-  if (sd->o_video)
-    {
-      evas_object_del(sd->o_video);
-      sd->o_video = NULL;
-    }
   if (sd->settle_timer)
     {
       ecore_timer_del(sd->settle_timer);
diff --git a/src/efm/efm_structs.h b/src/efm/efm_structs.h
index b286df5..253b554 100644
--- a/src/efm/efm_structs.h
+++ b/src/efm/efm_structs.h
@@ -95,7 +95,6 @@ struct _Smart_Data
       int         cursor_pos;
     } prevcmd;
   } typebuf;
-  
 
   Evas_Coord      icon_min_w, icon_min_h;
   Evas_Coord      list_min_w, list_min_h;
@@ -134,6 +133,7 @@ struct _Smart_Data
     void              *menu_data; // some handle to the currently active menu
   } menu_provider;
 
+  Eina_Bool in_del               : 1;
   Eina_Bool reblocked            : 1;
   Eina_Bool relayout             : 1;
   Eina_Bool focused              : 1;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to