forked from enlightenment/enlightenment
id_del was never called for gadcon clients, so call it after shutdown. Report and help for testing done by stefzekiller <stefzekiller@gmail.com>.
Moreover, remove some new compiler warning. SVN revision: 36661
This commit is contained in:
parent
d2f7e4da0d
commit
6de31a6163
|
@ -48,7 +48,7 @@ static void _e_gadcon_cb_dnd_move(void *data, const char *type, void *event);
|
||||||
static void _e_gadcon_cb_dnd_leave(void *data, const char *type, void *event);
|
static void _e_gadcon_cb_dnd_leave(void *data, const char *type, void *event);
|
||||||
static void _e_gadcon_cb_drop(void *data, const char *type, void *event);
|
static void _e_gadcon_cb_drop(void *data, const char *type, void *event);
|
||||||
|
|
||||||
static int _e_gadcon_client_class_feature_check(E_Gadcon_Client_Class *cc, const char *name, void *feature);
|
static int _e_gadcon_client_class_feature_check(const E_Gadcon_Client_Class *cc, const char *name, void *feature);
|
||||||
static void _e_gadcon_client_cb_menu_post(void *data, E_Menu *m);
|
static void _e_gadcon_client_cb_menu_post(void *data, E_Menu *m);
|
||||||
static void _e_gadcon_client_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
static void _e_gadcon_client_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
static void _e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
static void _e_gadcon_client_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
|
@ -468,6 +468,10 @@ e_gadcon_populate_class(E_Gadcon *gc, const E_Gadcon_Client_Class *cc)
|
||||||
{
|
{
|
||||||
E_Gadcon_Client *gcc;
|
E_Gadcon_Client *gcc;
|
||||||
|
|
||||||
|
if ((!cf_gcc->id) &&
|
||||||
|
(_e_gadcon_client_class_feature_check(cc, "id_new", cc->func.id_new)))
|
||||||
|
cf_gcc->id = evas_stringshare_add(cc->func.id_new());
|
||||||
|
|
||||||
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
gcc = cc->func.init(gc, cf_gcc->name, cf_gcc->id,
|
||||||
cf_gcc->style);
|
cf_gcc->style);
|
||||||
if (gcc)
|
if (gcc)
|
||||||
|
@ -1372,6 +1376,8 @@ _e_gadcon_client_free(E_Gadcon_Client *gcc)
|
||||||
}
|
}
|
||||||
e_gadcon_client_edit_end(gcc);
|
e_gadcon_client_edit_end(gcc);
|
||||||
gcc->client_class->func.shutdown(gcc);
|
gcc->client_class->func.shutdown(gcc);
|
||||||
|
if (gcc->client_class->func.id_del)
|
||||||
|
gcc->client_class->func.id_del(gcc->cf->id);
|
||||||
gcc->gadcon->clients = evas_list_remove(gcc->gadcon->clients, gcc);
|
gcc->gadcon->clients = evas_list_remove(gcc->gadcon->clients, gcc);
|
||||||
if (gcc->o_box) evas_object_del(gcc->o_box);
|
if (gcc->o_box) evas_object_del(gcc->o_box);
|
||||||
if (gcc->o_frame) evas_object_del(gcc->o_frame);
|
if (gcc->o_frame) evas_object_del(gcc->o_frame);
|
||||||
|
@ -2236,7 +2242,7 @@ _e_gadcon_cb_drop(void *data, const char *type, void *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_gadcon_client_class_feature_check(E_Gadcon_Client_Class *cc, const char *name, void *feature)
|
_e_gadcon_client_class_feature_check(const E_Gadcon_Client_Class *cc, const char *name, void *feature)
|
||||||
{
|
{
|
||||||
if (!feature)
|
if (!feature)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue