expose connman module as extern, make popup delete non-static, delete connman popups whenever input agent is shown

TODO--


SVN revision: 76176
This commit is contained in:
Mike Blumenkrantz 2012-09-05 08:15:41 +00:00
parent a7b36f6f9e
commit 32b3c3f375
4 changed files with 16 additions and 10 deletions

View File

@ -9,8 +9,6 @@
- Streamline the Cancel() and Release() callbacks because they are very
similar
- Destroy popup when we are going to ask for user input
- When we request user input, give focus to the first 'Mandatory'
entry field

View File

@ -9,7 +9,7 @@
#include "e.h"
#include "agent.h"
#include "E_Connman.h"
#include "e_mod_main.h"
#define AGENT_IFACE "net.connman.Agent"
typedef struct _E_Connman_Agent_Input E_Connman_Agent_Input;
@ -388,6 +388,9 @@ _parse_field(struct Connman_Field *field, DBusMessageIter *value)
static DBusMessage *
_agent_request_input(E_DBus_Object *obj, DBusMessage *msg)
{
E_Connman_Module_Context *ctxt = connman_mod->data;
const Eina_List *l;
E_Connman_Instance *inst;
DBusMessageIter iter, dict;
E_Connman_Agent *agent;
DBusMessage *reply;
@ -400,6 +403,9 @@ _agent_request_input(E_DBus_Object *obj, DBusMessage *msg)
dbus_message_unref(agent->msg);
agent->msg = dbus_message_ref(msg);
EINA_LIST_FOREACH(ctxt->instances, l, inst)
econnman_popup_del(inst);
if (agent->dialog)
_dialog_del(agent->dialog);
agent->dialog = _dialog_new(agent);

View File

@ -3,7 +3,7 @@
#include "E_Connman.h"
static E_Module *connman_mod;
E_Module *connman_mod = NULL;
static char tmpbuf[4096]; /* general purpose buffer, just use immediately */
const char _e_connman_name[] = "connman";
@ -165,8 +165,6 @@ void econnman_mod_services_changed(struct Connman_Manager *cm)
}
}
static void _econnman_popup_del(E_Connman_Instance *inst);
static Eina_Bool _econnman_popup_input_window_mouse_up_cb(void *data,
int type, void *event)
{
@ -176,7 +174,7 @@ static Eina_Bool _econnman_popup_input_window_mouse_up_cb(void *data,
if (ev->window != inst->ui.popup.input_win)
return ECORE_CALLBACK_PASS_ON;
_econnman_popup_del(inst);
econnman_popup_del(inst);
return ECORE_CALLBACK_PASS_ON;
}
@ -257,8 +255,10 @@ static void _econnman_popup_new(E_Connman_Instance *inst)
_econnman_popup_input_window_create(inst);
}
static void _econnman_popup_del(E_Connman_Instance *inst)
void
econnman_popup_del(E_Connman_Instance *inst)
{
if (!inst->popup) return;
_econnman_popup_input_window_destroy(inst);
e_object_del(E_OBJECT(inst->popup));
inst->popup = NULL;
@ -397,7 +397,7 @@ _econnman_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event)
if (!inst->popup)
_econnman_popup_new(inst);
else
_econnman_popup_del(inst);
econnman_popup_del(inst);
}
else if (ev->button == 3)
_econnman_menu_new(inst, ev);
@ -467,7 +467,7 @@ _gc_shutdown(E_Gadcon_Client *gcc)
return;
if (inst->popup)
_econnman_popup_del(inst);
econnman_popup_del(inst);
evas_object_del(inst->ui.gadget);

View File

@ -9,6 +9,7 @@
#define MOD_CONF_VERSION 3
extern E_Module *connman_mod;
extern int _e_connman_log_dom;
typedef struct E_Connman_Instance E_Connman_Instance;
@ -55,6 +56,7 @@ EAPI void *e_modapi_init(E_Module *m);
EAPI int e_modapi_shutdown(E_Module *m);
EAPI int e_modapi_save(E_Module *m);
void econnman_popup_del(E_Connman_Instance *inst);
const char *e_connman_theme_path(void);
E_Config_Dialog *e_connman_config_dialog_new(E_Container *con,
E_Connman_Module_Context *ctxt);