e/bluez4: bug fixes

Patch by: Lucas Joia <lucasjoia@profusion.mobi>



SVN revision: 82207
This commit is contained in:
Lucas Joia 2013-01-04 16:13:38 +00:00 committed by Lucas De Marchi
parent 7d9c6e3bfd
commit 07cc9c9659
2 changed files with 14 additions and 10 deletions

View File

@ -254,9 +254,13 @@ _menu_post_deactivate(void *data __UNUSED__, E_Menu *m)
{
Eina_List *iter;
E_Menu_Item *mi;
Instance *inst;
Instance *inst = data;
if ((inst = data)) e_gadcon_locked_set(inst->gcc->gadcon, 0);
if (!(m->parent_item) || !(m->parent_item->menu))
{
e_gadcon_locked_set(inst->gcc->gadcon, 0);
inst->menu = NULL;
}
EINA_LIST_FOREACH(m->items, iter, mi)
if (mi->submenu) e_menu_deactivate(mi->submenu);
e_object_del(E_OBJECT(m));
@ -291,7 +295,7 @@ _ebluez4_add_devices(Instance *inst)
e_menu_item_check_set(mi, 1);
subm = e_menu_new();
e_menu_post_deactivate_callback_set(subm, _menu_post_deactivate,
NULL);
inst);
e_menu_item_submenu_set(mi, subm);
submi = e_menu_item_new(subm);
if (dev->connected)
@ -415,7 +419,7 @@ _gc_shutdown(E_Gadcon_Client *gcc)
evas_object_del(inst->o_bluez4);
}
e_menu_deactivate(inst->menu);
if (inst->menu) e_menu_deactivate(inst->menu);
_ebluez4_search_dialog_del(inst);
_ebluez4_adap_list_dialog_del(inst);
@ -482,6 +486,7 @@ EAPI int
e_modapi_shutdown(E_Module *m)
{
ebluez4_edbus_shutdown();
e_gadcon_provider_unregister(&_gc_class);
return 1;
}
@ -552,7 +557,7 @@ ebluez4_update_all_gadgets_visibility(void)
EINA_LIST_FOREACH(instances, iter, inst)
{
_ebluez4_set_mod_icon(inst->o_bluez4);
e_menu_deactivate(inst->menu);
if (inst->menu) e_menu_deactivate(inst->menu);
_ebluez4_search_dialog_del(inst);
_ebluez4_adap_list_dialog_del(inst);
}

View File

@ -413,9 +413,6 @@ _on_device_found(void *context, const EDBus_Message *msg)
if(eina_list_search_unsorted(ctxt->found_devices, _dev_addr_cmp, addr))
return;
if (!edbus_message_arguments_get(msg, "a{sv}", &dict))
return;
_retrieve_properties(dict, &addr, &name, &icon, &paired, &connected, &uuids);
dev = calloc(1, sizeof(Device));
@ -552,6 +549,7 @@ _unset_default_adapter(void)
ctxt->devices = NULL;
_free_dev_list(&ctxt->found_devices);
ctxt->found_devices = NULL;
edbus_object_unref(ctxt->adap_obj);
ctxt->adap_obj = NULL;
ebluez4_update_all_gadgets_visibility();
}
@ -750,9 +748,10 @@ ebluez4_edbus_init(void)
void
ebluez4_edbus_shutdown(void)
{
_free_dev_list(&ctxt->devices);
_free_dev_list(&ctxt->found_devices);
if (ctxt->adap_obj)
_unset_default_adapter();
_free_adap_list();
edbus_object_unref(edbus_proxy_object_get(ctxt->man_proxy));
edbus_connection_unref(ctxt->conn);
free(ctxt);