fix menu tracking + E_API
1. uses EAPI - this was efl's symbol visibility macro. e used E_API... so use it 2. don't track menu - gadcon does that for you. fixed crash/mem access bug as gadcon owns this menu not the module.
This commit is contained in:
parent
54133987a3
commit
3a8554ee94
|
@ -18,7 +18,6 @@ static Eina_Bool _places_conf_timer(void *data);
|
|||
static Config_Item *_places_conf_item_get(const char *id);
|
||||
static void _places_icon_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event);
|
||||
static void _places_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event);
|
||||
static void _places_cb_menu_post(void *data, E_Menu *menu);
|
||||
static void _places_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi);
|
||||
|
||||
/* Local Variables */
|
||||
|
@ -37,10 +36,10 @@ static const E_Gadcon_Client_Class _gc_class =
|
|||
E_GADCON_CLIENT_STYLE_PLAIN
|
||||
};
|
||||
|
||||
EAPI E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Places"};
|
||||
E_API E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Places"};
|
||||
|
||||
/* Module Functions */
|
||||
EAPI void *
|
||||
E_API void *
|
||||
e_modapi_init(E_Module *m)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
|
@ -142,7 +141,7 @@ e_modapi_init(E_Module *m)
|
|||
return m;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
E_API int
|
||||
e_modapi_shutdown(E_Module *m)
|
||||
{
|
||||
places_shutdown();
|
||||
|
@ -172,7 +171,7 @@ e_modapi_shutdown(E_Module *m)
|
|||
return 1;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
E_API int
|
||||
e_modapi_save(E_Module *m)
|
||||
{
|
||||
e_config_domain_save("module.places", conf_edd, places_conf);
|
||||
|
@ -232,13 +231,6 @@ _gc_shutdown(E_Gadcon_Client *gcc)
|
|||
if (!(inst = gcc->data)) return;
|
||||
instances = eina_list_remove(instances, inst);
|
||||
|
||||
if (inst->menu)
|
||||
{
|
||||
e_menu_post_deactivate_callback_set(inst->menu, NULL, NULL);
|
||||
e_object_del(E_OBJECT(inst->menu));
|
||||
inst->menu = NULL;
|
||||
}
|
||||
|
||||
if (inst->o_main)
|
||||
{
|
||||
evas_object_event_callback_del(inst->o_main, EVAS_CALLBACK_MOUSE_DOWN,
|
||||
|
@ -516,7 +508,7 @@ _places_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event)
|
|||
|
||||
if (!(inst = data)) return;
|
||||
ev = event;
|
||||
if ((ev->button == 3) && (!inst->menu))
|
||||
if (ev->button == 3)
|
||||
{
|
||||
E_Menu *m;
|
||||
|
||||
|
@ -530,9 +522,6 @@ _places_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event)
|
|||
|
||||
/* Each Gadget Client has a utility menu from the Container */
|
||||
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
|
||||
e_menu_post_deactivate_callback_set(m, _places_cb_menu_post, inst);
|
||||
inst->menu = m;
|
||||
|
||||
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y,
|
||||
NULL, NULL);
|
||||
|
||||
|
@ -546,17 +535,6 @@ _places_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_places_cb_menu_post(void *data, E_Menu *menu)
|
||||
{
|
||||
Instance *inst = NULL;
|
||||
|
||||
if (!(inst = data)) return;
|
||||
if (!inst->menu) return;
|
||||
e_object_del(E_OBJECT(inst->menu));
|
||||
inst->menu = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_places_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi)
|
||||
{
|
||||
|
|
|
@ -75,7 +75,6 @@ struct _Instance
|
|||
Evas_Object *o_icon;
|
||||
E_Gadcon_Popup *popup;
|
||||
Eina_Bool horiz;
|
||||
E_Menu *menu;
|
||||
Config_Item *conf_item;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue