From 0093c9baa1f53797c35ffcbb07491a52534cdeae Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sat, 17 Oct 2020 21:00:30 +0100 Subject: [PATCH] pager - try a fix for a pager segv - cant reproduce though a bit of i dotting and t crossing as to try stop this from happening again --- src/modules/pager/e_mod_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index 81f051269..be8238160 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -337,9 +337,9 @@ _pager_recalc(void *data) int w, h, zw, zh, w2, h2; E_Gadcon_Orient orient; + p->recalc = NULL; if (!p->inst || !p->inst->gcc || !p->inst->gcc->gadcon) return; - p->recalc = NULL; zw = p->zone->w; zh = p->zone->h; pd = eina_list_data_get(p->desks); if (!pd) return; @@ -379,8 +379,8 @@ _pager_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi { Pager *p = data; - if (!p->recalc) - p->recalc = ecore_job_add(_pager_recalc, p); + if (p->recalc) ecore_job_del(p->recalc); + p->recalc = ecore_job_add(_pager_recalc, p); } static Pager * @@ -404,10 +404,12 @@ _pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc, Instance *inst) static void _pager_free(Pager *p) { + pagers = eina_list_remove(pagers, p); _pager_empty(p); evas_object_del(p->o_table); + p->o_table = NULL; ecore_job_del(p->recalc); - pagers = eina_list_remove(pagers, p); + p->recalc = NULL; free(p); }