delete shelf objects before event to trigger gadcon sub-events
SVN revision: 76292
This commit is contained in:
parent
1bfe48b180
commit
54ea19dc37
|
@ -1004,7 +1004,28 @@ _e_shelf_free_cb(void *data __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
E_Event_Shelf *ev = event;
|
E_Event_Shelf *ev = event;
|
||||||
E_Shelf *es = ev->shelf;
|
E_Shelf *es = ev->shelf;
|
||||||
|
|
||||||
|
eina_stringshare_del(es->name);
|
||||||
|
eina_stringshare_del(es->style);
|
||||||
|
|
||||||
|
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);
|
||||||
free(ev);
|
free(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_shelf_free(E_Shelf *es)
|
||||||
|
{
|
||||||
|
E_Event_Shelf *ev;
|
||||||
|
|
||||||
if (!es->dummy)
|
if (!es->dummy)
|
||||||
_e_shelf_bindings_del(es);
|
_e_shelf_bindings_del(es);
|
||||||
|
|
||||||
|
@ -1047,12 +1068,13 @@ _e_shelf_free_cb(void *data __UNUSED__, void *event)
|
||||||
e_gadcon_location_unregister(es->gadcon->location);
|
e_gadcon_location_unregister(es->gadcon->location);
|
||||||
e_gadcon_location_free(es->gadcon->location);
|
e_gadcon_location_free(es->gadcon->location);
|
||||||
e_object_del(E_OBJECT(es->gadcon));
|
e_object_del(E_OBJECT(es->gadcon));
|
||||||
|
es->gadcon = NULL;
|
||||||
}
|
}
|
||||||
if (es->config_dialog) e_object_del(E_OBJECT(es->config_dialog));
|
if (es->config_dialog) e_object_del(E_OBJECT(es->config_dialog));
|
||||||
eina_stringshare_del(es->name);
|
es->config_dialog = NULL;
|
||||||
eina_stringshare_del(es->style);
|
|
||||||
evas_object_del(es->o_event);
|
evas_object_del(es->o_event);
|
||||||
evas_object_del(es->o_base);
|
evas_object_del(es->o_base);
|
||||||
|
es->o_base = es->o_event = NULL;
|
||||||
if (es->popup)
|
if (es->popup)
|
||||||
{
|
{
|
||||||
e_drop_xdnd_register_set(es->popup->evas_win, 0);
|
e_drop_xdnd_register_set(es->popup->evas_win, 0);
|
||||||
|
@ -1065,22 +1087,7 @@ _e_shelf_free_cb(void *data __UNUSED__, void *event)
|
||||||
}
|
}
|
||||||
e_object_del(E_OBJECT(es->popup));
|
e_object_del(E_OBJECT(es->popup));
|
||||||
}
|
}
|
||||||
if (es->cfg_delete)
|
es->popup = NULL;
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_e_shelf_free(E_Shelf *es)
|
|
||||||
{
|
|
||||||
E_Event_Shelf *ev;
|
|
||||||
|
|
||||||
ev = E_NEW(E_Event_Shelf, 1);
|
ev = E_NEW(E_Event_Shelf, 1);
|
||||||
ev->shelf = es;
|
ev->shelf = es;
|
||||||
|
|
Loading…
Reference in New Issue