fix crashing when deleting shelves

ticket #1439


SVN revision: 75924
devs/princeamd/enlightenment-0.17-elive
Mike Blumenkrantz 11 years ago
parent e440668ea8
commit 3f3466c415
  1. 16
      src/bin/e_shelf.c
  2. 1
      src/bin/e_shelf.h

@ -1065,6 +1065,15 @@ _e_shelf_free_cb(void *data __UNUSED__, void *event)
}
e_object_del(E_OBJECT(es->popup));
}
if (es->cfg_delete)
{
e_config->shelves = eina_list_remove(e_config->shelves, es->cfg);
eina_stringshare_del(es->cfg->name);
eina_stringshare_del(es->cfg->style);
free(es->cfg);
e_config_save_queue();
}
free(es);
}
@ -1510,13 +1519,8 @@ _e_shelf_cb_confirm_dialog_yes(void *data)
es = data;
cfg = es->cfg;
if (e_object_is_del(E_OBJECT(es))) return;
es->cfg_delete = 1;
e_object_del(E_OBJECT(es));
e_config->shelves = eina_list_remove(e_config->shelves, cfg);
if (cfg->name) eina_stringshare_del(cfg->name);
if (cfg->style) eina_stringshare_del(cfg->style);
E_FREE(cfg);
e_config_save_queue();
}
static void

@ -45,6 +45,7 @@ struct _E_Shelf
unsigned char edge : 1;
unsigned char urgent_show : 1;
unsigned char dummy : 1;
Eina_Bool cfg_delete : 1;
unsigned int locked;
};

Loading…
Cancel
Save