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 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_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_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);
|
static void _places_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi);
|
||||||
|
|
||||||
/* Local Variables */
|
/* Local Variables */
|
||||||
|
@ -37,10 +36,10 @@ static const E_Gadcon_Client_Class _gc_class =
|
||||||
E_GADCON_CLIENT_STYLE_PLAIN
|
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 */
|
/* Module Functions */
|
||||||
EAPI void *
|
E_API void *
|
||||||
e_modapi_init(E_Module *m)
|
e_modapi_init(E_Module *m)
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
@ -142,7 +141,7 @@ e_modapi_init(E_Module *m)
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI int
|
E_API int
|
||||||
e_modapi_shutdown(E_Module *m)
|
e_modapi_shutdown(E_Module *m)
|
||||||
{
|
{
|
||||||
places_shutdown();
|
places_shutdown();
|
||||||
|
@ -172,7 +171,7 @@ e_modapi_shutdown(E_Module *m)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI int
|
E_API int
|
||||||
e_modapi_save(E_Module *m)
|
e_modapi_save(E_Module *m)
|
||||||
{
|
{
|
||||||
e_config_domain_save("module.places", conf_edd, places_conf);
|
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;
|
if (!(inst = gcc->data)) return;
|
||||||
instances = eina_list_remove(instances, inst);
|
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)
|
if (inst->o_main)
|
||||||
{
|
{
|
||||||
evas_object_event_callback_del(inst->o_main, EVAS_CALLBACK_MOUSE_DOWN,
|
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;
|
if (!(inst = data)) return;
|
||||||
ev = event;
|
ev = event;
|
||||||
if ((ev->button == 3) && (!inst->menu))
|
if (ev->button == 3)
|
||||||
{
|
{
|
||||||
E_Menu *m;
|
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 */
|
/* Each Gadget Client has a utility menu from the Container */
|
||||||
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
|
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,
|
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y,
|
||||||
NULL, NULL);
|
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
|
static void
|
||||||
_places_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi)
|
_places_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi)
|
||||||
{
|
{
|
||||||
|
|
|
@ -75,7 +75,6 @@ struct _Instance
|
||||||
Evas_Object *o_icon;
|
Evas_Object *o_icon;
|
||||||
E_Gadcon_Popup *popup;
|
E_Gadcon_Popup *popup;
|
||||||
Eina_Bool horiz;
|
Eina_Bool horiz;
|
||||||
E_Menu *menu;
|
|
||||||
Config_Item *conf_item;
|
Config_Item *conf_item;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue