summaryrefslogtreecommitdiff
path: root/src/modules/pager
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-10-17 21:00:30 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-10-17 21:00:30 +0100
commit0093c9baa1f53797c35ffcbb07491a52534cdeae (patch)
tree3b7faa844123b66242b45cc9ca241c763677ea0d /src/modules/pager
parent029df828eaed87c7f8b2804502bf41e7c3dcf5b6 (diff)
downloadenlightenment-0093c9baa1f53797c35ffcbb07491a52534cdeae.tar.gz
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
Diffstat (limited to 'src/modules/pager')
-rw-r--r--src/modules/pager/e_mod_main.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c
index 81f0512698..be82381604 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);
}