From c35ae8482f9d2c14eff162abc6e49614538f3443 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Sat, 14 Jan 2006 12:30:46 +0000 Subject: [PATCH] Patch from David Stevenson to stop pager module causing E to segfault when setting the number of desks via enlightenment_remote. Tested, works SVN revision: 19776 --- src/modules/pager/e_mod_main.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index 1bb976626..a1021d0ef 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -1462,6 +1462,21 @@ _pager_cb_event_zone_desk_count_set(void *data, int type, void *event) else dh = 0; dh *= (desks_y - face->ynum); + /* Loop to add new desks */ + for (x = 0; x < desks_x; x++) + { + for (y = 0; y < desks_y; y++) + { + if ((x >= face->xnum) || (y >= face->ynum)) + { + /* add desk */ + desk = e_desk_at_xy_get(ev->zone, x, y); + pd = _pager_desk_new(face, desk, x, y); + if (pd) + face->desks = evas_list_append(face->desks, pd); + } + } + } /* Loop to remove extra desks */ for (l2 = face->desks; l2;) { @@ -1480,21 +1495,6 @@ _pager_cb_event_zone_desk_count_set(void *data, int type, void *event) _pager_desk_free(pd); } } - /* Loop to add new desks */ - for (x = 0; x < desks_x; x++) - { - for (y = 0; y < desks_y; y++) - { - if ((x >= face->xnum) || (y >= face->ynum)) - { - /* add desk */ - desk = e_desk_at_xy_get(ev->zone, x, y); - pd = _pager_desk_new(face, desk, x, y); - if (pd) - face->desks = evas_list_append(face->desks, pd); - } - } - } face->xnum = desks_x; face->ynum = desks_y;