raster pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/forecasts.git/commit/?id=d1486a92a0ef29e19c40d1ffcea0f6cafbc13c7d

commit d1486a92a0ef29e19c40d1ffcea0f6cafbc13c7d
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Sat Feb 20 20:16:38 2021 +0000

    use ecore_on url - nuke warnings and use mouse up for popup
---
 src/e_mod_config.c |  14 +--
 src/e_mod_main.c   | 281 +++++++++++++++++------------------------------------
 src/e_mod_main.h   |   1 -
 3 files changed, 94 insertions(+), 202 deletions(-)

diff --git a/src/e_mod_config.c b/src/e_mod_config.c
index d84c920..e13db6f 100644
--- a/src/e_mod_config.c
+++ b/src/e_mod_config.c
@@ -77,7 +77,7 @@ _create_data(E_Config_Dialog *cfd)
 }
 
 static void
-_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+_free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
 {
    if (!forecasts_config)
      return;
@@ -102,7 +102,7 @@ _poll_time_slider_changed_cb(void *data, Evas_Object *obj,
 }
 
 static void
-_radio_changed_cb(void *data, Evas_Object *obj,
+_radio_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
                   void *event_info EINA_UNUSED)
 {
    E_Config_Dialog *cfd = data;
@@ -123,7 +123,7 @@ _text_location_get(void *data, Evas_Object *obj 
EINA_UNUSED, const char *part)
 }
 
 static void
-_item_location_del(void *data, Evas_Object *obj)
+_item_location_del(void *data, Evas_Object *obj EINA_UNUSED)
 {
    Places_Location *location = data;
 
@@ -131,7 +131,7 @@ _item_location_del(void *data, Evas_Object *obj)
 }
 
 static void
-_locations_selected_cb(void *data, Evas_Object *obj,
+_locations_selected_cb(void *data, Evas_Object *obj EINA_UNUSED,
                        void *event_info EINA_UNUSED)
 {
    E_Config_Dialog_Data *cfdata;
@@ -186,8 +186,8 @@ _locations_fill(E_Config_Dialog_Data *cfdata)
 }
 
 static void
-_categories_selected_cb(void *data, Evas_Object *obj,
-                       void *event_info EINA_UNUSED)
+_categories_selected_cb(void *data, Evas_Object *obj EINA_UNUSED,
+                        void *event_info EINA_UNUSED)
 {
    E_Config_Dialog_Data *cfdata;
    Elm_Object_Item *it;
@@ -206,7 +206,7 @@ _categories_selected_cb(void *data, Evas_Object *obj,
 }
 
 static void
-_item_location_id_del(void *data, Evas_Object *obj)
+_item_location_id_del(void *data, Evas_Object *obj EINA_UNUSED)
 {
    Places_Category *category = data;
    free(category);
diff --git a/src/e_mod_main.c b/src/e_mod_main.c
index e86493e..3e4bd73 100644
--- a/src/e_mod_main.c
+++ b/src/e_mod_main.c
@@ -2,8 +2,7 @@
 #include "e_mod_main.h"
 #include <json-c/json.h>
 
-#define _XOPEN_SOURCE
-#include <time.h>
+char *strptime(const char *s, const char *format, struct tm *tm);
 
 #define FORECASTS    2
 #define KM_TO_MI     1.609344
@@ -42,10 +41,9 @@ struct _Instance
    Evas_Object         *forecasts_obj;
    Forecasts           *forecasts;
    Ecore_Timer         *check_timer;
-   Ecore_Con_Server    *server;
-   Ecore_Event_Handler *add_handler;
-   Ecore_Event_Handler *del_handler;
-   Ecore_Event_Handler *data_handler;
+   Ecore_Con_Url       *url;
+   Ecore_Event_Handler *url_data_handler;
+   Ecore_Event_Handler *url_complete_handler;
 
    struct
    {
@@ -99,17 +97,9 @@ struct _Forecasts
    Evas_Object *icon_obj;
 };
 
-struct
-{
-   const char *host;
-   int         port;
-} proxy = {
-   NULL, 0
-};
-
 /* Module Function Protos */
-static void         _forecasts_cb_mouse_down(void *data, Evas *e, Evas_Object 
*obj,
-                                             void *event_info);
+static void         _forecasts_cb_mouse_up(void *data, Evas *e, Evas_Object 
*obj,
+                                           void *event_info);
 static void         _forecasts_menu_cb_configure(void *data, E_Menu *m,
                                                  E_Menu_Item *mi);
 static void         _forecasts_menu_cb_post(void *data, E_Menu *m);
@@ -117,10 +107,8 @@ static Eina_Bool    _forecasts_cb_check(void *data);
 static Config_Item *_forecasts_config_item_get(const char *id);
 static Forecasts   *_forecasts_new(Evas *evas);
 static void         _forecasts_free(Forecasts *w);
-static void         _forecasts_get_proxy(void);
-static Eina_Bool    _forecasts_server_add(void *data, int type, void *event);
-static Eina_Bool    _forecasts_server_del(void *data, int type, void *event);
-static Eina_Bool    _forecasts_server_data(void *data, int type, void *event);
+static Eina_Bool    _forecasts_url_data(void *data, int type, void *event);
+static Eina_Bool    _forecasts_url_complete(void *data, int type, void *event);
 static int          _forecasts_parse(void *data);
 static void         _forecasts_converter(Instance *inst);
 static void         _forecasts_convert_degrees(int *value, int dir);
@@ -128,7 +116,7 @@ static void         _forecasts_convert_distances(int 
*value, int dir);
 static void         _forecasts_convert_pressures(float *value, int dir);
 static void         _forecasts_display_set(Instance *inst, int ok);
 static void         _forecasts_popup_content_create(Instance *inst);
-static void         _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void         _cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
 static void         _cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
 static void         _cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
 static Evas_Object *_forecasts_popup_icon_create(Evas *evas, const char *code);
@@ -159,28 +147,24 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, 
const char *style)
    inst->gcc = gcc;
    inst->popup = NULL;
    inst->forecasts_obj = o;
-   evas_object_event_callback_add(inst->forecasts_obj, 
EVAS_CALLBACK_MOUSE_DOWN,
-                                  _cb_mouse_down, inst);
+   evas_object_event_callback_add(inst->forecasts_obj, EVAS_CALLBACK_MOUSE_UP,
+                                  _cb_mouse_up, inst);
    evas_object_event_callback_add(inst->forecasts_obj, EVAS_CALLBACK_MOUSE_IN,
                                   _cb_mouse_in, inst);
    evas_object_event_callback_add(inst->forecasts_obj, EVAS_CALLBACK_MOUSE_OUT,
                                   _cb_mouse_out, inst);
 
-   if (!inst->add_handler)
-     inst->add_handler =
-       ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD,
-                               _forecasts_server_add, inst);
-   if (!inst->del_handler)
-     inst->del_handler =
-       ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL,
-                               _forecasts_server_del, inst);
-   if (!inst->data_handler)
-     inst->data_handler =
-       ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA,
-                               _forecasts_server_data, inst);
-
-   evas_object_event_callback_add(w->forecasts_obj, EVAS_CALLBACK_MOUSE_DOWN,
-                                  _forecasts_cb_mouse_down, inst);
+   if (!inst->url_data_handler)
+     inst->url_data_handler =
+       ecore_event_handler_add(ECORE_CON_EVENT_URL_DATA,
+                               _forecasts_url_data, inst);
+   if (!inst->url_complete_handler)
+     inst->url_complete_handler =
+       ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE,
+                               _forecasts_url_complete, inst);
+
+   evas_object_event_callback_add(w->forecasts_obj, EVAS_CALLBACK_MOUSE_UP,
+                                  _forecasts_cb_mouse_up, inst);
    forecasts_config->instances =
      eina_list_append(forecasts_config->instances, inst);
 
@@ -202,24 +186,22 @@ _gc_shutdown(E_Gadcon_Client *gcc)
    if (inst->popup) _forecasts_popup_destroy(inst);
    if (inst->check_timer)
      ecore_timer_del(inst->check_timer);
-   if (inst->add_handler)
-     ecore_event_handler_del(inst->add_handler);
-   if (inst->data_handler)
-     ecore_event_handler_del(inst->data_handler);
-   if (inst->del_handler)
-     ecore_event_handler_del(inst->del_handler);
-   if (inst->server)
-     ecore_con_server_del(inst->server);
+   if (inst->url_data_handler)
+     ecore_event_handler_del(inst->url_data_handler);
+   if (inst->url_complete_handler)
+     ecore_event_handler_del(inst->url_complete_handler);
+   if (inst->url)
+     ecore_con_url_free(inst->url);
    if (inst->area)
      eina_stringshare_del(inst->area);
    eina_strbuf_free(inst->buffer);
 
-   inst->server = NULL;
+   inst->url = NULL;
    forecasts_config->instances =
      eina_list_remove(forecasts_config->instances, inst);
 
-   evas_object_event_callback_del(w->forecasts_obj, EVAS_CALLBACK_MOUSE_DOWN,
-                                  _forecasts_cb_mouse_down);
+   evas_object_event_callback_del(w->forecasts_obj, EVAS_CALLBACK_MOUSE_UP,
+                                  _forecasts_cb_mouse_up);
 
    _forecasts_free(w);
    E_FREE(inst);
@@ -249,13 +231,13 @@ _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient)
 }
 
 static const char *
-_gc_label(const E_Gadcon_Client_Class *client_class)
+_gc_label(const E_Gadcon_Client_Class *client_class EINA_UNUSED)
 {
    return D_("Forecasts");
 }
 
 static Evas_Object *
-_gc_icon(const E_Gadcon_Client_Class *client_class, Evas *evas)
+_gc_icon(const E_Gadcon_Client_Class *client_class EINA_UNUSED, Evas *evas)
 {
    Evas_Object *o;
    char buf[4096];
@@ -268,7 +250,7 @@ _gc_icon(const E_Gadcon_Client_Class *client_class, Evas 
*evas)
 }
 
 static const char *
-_gc_id_new(const E_Gadcon_Client_Class *client_class)
+_gc_id_new(const E_Gadcon_Client_Class *client_class EINA_UNUSED)
 {
    Config_Item *ci;
 
@@ -277,14 +259,14 @@ _gc_id_new(const E_Gadcon_Client_Class *client_class)
 }
 
 static void
-_forecasts_cb_mouse_down(void *data, Evas *e, Evas_Object *obj,
-                         void *event_info)
+_forecasts_cb_mouse_up(void *data, Evas *e EINA_UNUSED,
+                       Evas_Object *obj EINA_UNUSED,
+                       void *event_info)
 {
-   Instance *inst;
-   Evas_Event_Mouse_Down *ev;
+   Instance *inst = data;
+   Evas_Event_Mouse_Up *ev = event_info;
 
-   inst = data;
-   ev = event_info;
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
    if ((ev->button == 3) && (!forecasts_config->menu))
      {
         E_Menu *m;
@@ -312,7 +294,7 @@ _forecasts_cb_mouse_down(void *data, Evas *e, Evas_Object 
*obj,
 }
 
 static void
-_forecasts_menu_cb_post(void *data, E_Menu *m)
+_forecasts_menu_cb_post(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED)
 {
    if (!forecasts_config->menu)
      return;
@@ -321,7 +303,7 @@ _forecasts_menu_cb_post(void *data, E_Menu *m)
 }
 
 static void
-_forecasts_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item *mi)
+_forecasts_menu_cb_configure(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item 
*mi EINA_UNUSED)
 {
    Instance *inst;
 
@@ -367,7 +349,6 @@ _forecasts_config_item_get(const char *id)
    ci->id = eina_stringshare_add(id);
    ci->poll_time = 60.0;
    ci->degrees = DEGREES_C;
-   ci->host = eina_stringshare_add("www.enlightenment.org");
    ci->lat = ci->lon = 0;
    ci->show_text = 1;
    ci->popup_on_hover = 1;
@@ -385,6 +366,7 @@ E_API E_Module_Api e_modapi = {
 E_API void *
 e_modapi_init(E_Module *m)
 {
+   ecore_con_url_init();
    bindtextdomain(PACKAGE, LOCALE_DIR);
    bind_textdomain_codeset(PACKAGE, "UTF-8");
 
@@ -396,7 +378,6 @@ e_modapi_init(E_Module *m)
    E_CONFIG_VAL(D, T, id, STR);
    E_CONFIG_VAL(D, T, poll_time, DOUBLE);
    E_CONFIG_VAL(D, T, degrees, INT);
-   E_CONFIG_VAL(D, T, host, STR);
    E_CONFIG_VAL(D, T, show_text, INT);
    E_CONFIG_VAL(D, T, popup_on_hover, INT);
    E_CONFIG_VAL(D, T, location_id, INT);
@@ -421,7 +402,6 @@ e_modapi_init(E_Module *m)
         ci = E_NEW(Config_Item, 1);
         ci->poll_time = 60.0;
         ci->degrees = DEGREES_C;
-        ci->host = eina_stringshare_add("www.enlightenment.org");
         ci->lat = ci->lon = 0;
         ci->id = eina_stringshare_add("0");
         ci->show_text = 1;
@@ -429,7 +409,6 @@ e_modapi_init(E_Module *m)
 
         forecasts_config->items = eina_list_append(forecasts_config->items, 
ci);
      }
-   _forecasts_get_proxy();
 
    forecasts_config->module = m;
    e_gadcon_provider_register(&_gadcon_class);
@@ -437,7 +416,7 @@ e_modapi_init(E_Module *m)
 }
 
 E_API int
-e_modapi_shutdown(E_Module *m)
+e_modapi_shutdown(E_Module *m EINA_UNUSED)
 {
    forecasts_config->module = NULL;
    e_gadcon_provider_unregister(&_gadcon_class);
@@ -458,8 +437,6 @@ e_modapi_shutdown(E_Module *m)
         ci = forecasts_config->items->data;
         if (ci->id)
           eina_stringshare_del(ci->id);
-        if (ci->host)
-          eina_stringshare_del(ci->host);
         if (ci->location)
           eina_stringshare_del(ci->location);
 
@@ -472,11 +449,12 @@ e_modapi_shutdown(E_Module *m)
    E_FREE(forecasts_config);
    E_CONFIG_DD_FREE(conf_item_edd);
    E_CONFIG_DD_FREE(conf_edd);
+   ecore_con_url_shutdown();
    return 1;
 }
 
 E_API int
-e_modapi_save(E_Module *m)
+e_modapi_save(E_Module *m EINA_UNUSED)
 {
    e_config_domain_save("module.forecasts", conf_edd, forecasts_config);
    return 1;
@@ -529,101 +507,47 @@ _forecasts_free(Forecasts *w)
    w = NULL;
 }
 
-static void
-_forecasts_get_proxy(void)
-{
-   const char *env;
-   const char *host = NULL;
-   const char *p;
-   int port = 0;
-
-   env = getenv("http_proxy");
-   if ((!env) || (!*env)) env = getenv("HTTP_PROXY");
-   if ((!env) || (!*env)) return;
-   if (strncmp(env, "http://";, 7)) return;
-
-   host = strchr(env, ':');
-   host += 3;
-   p = strchr(host, ':');
-   if (p)
-     {
-        if (sscanf(p + 1, "%d", &port) != 1)
-          port = 0;
-     }
-   if ((host) && (port))
-     {
-        if (proxy.host) eina_stringshare_del(proxy.host);
-        proxy.host = eina_stringshare_add_length(host, p - host);
-        proxy.port = port;
-     }
-}
-
 static Eina_Bool
 _forecasts_cb_check(void *data)
 {
-   Instance *inst;
-
-   /* check that data is valid */
-   if (!(inst = data)) return EINA_FALSE;
+   Instance *inst = data;
+   char buf[256];
 
    /* if we have a previous server, delete it */
-   if (inst->server) ecore_con_server_del(inst->server);
-
-   /* server deleted, set variable to NULL */
-   inst->server = NULL;
-
-   if (proxy.port != 0)
-     inst->server =
-       ecore_con_server_connect(ECORE_CON_REMOTE_NODELAY,
-                                proxy.host, proxy.port, inst);
-   else
-     inst->server =
-       ecore_con_server_connect(ECORE_CON_REMOTE_NODELAY | 
ECORE_CON_USE_MIXED, inst->ci->host, 443, inst);
-
-   if (!inst->server) return EINA_FALSE;
+   if (inst->url) ecore_con_url_free(inst->url);
+   snprintf(buf, sizeof(buf),
+            "https://www.enlightenment.org/weather.php?lat=%s&lon=%s";,
+            inst->ci->lat, inst->ci->lon);
+   DEBUG("FC: URL: %s", buf);
+   inst->url = ecore_con_url_new(buf);
+   if (!inst->url) return EINA_FALSE;
+   ecore_con_url_http_version_set(inst->url, ECORE_CON_URL_HTTP_VERSION_1_0);
+   ecore_con_url_get(inst->url);
    return EINA_TRUE;
 }
 
 static Eina_Bool
-_forecasts_server_add(void *data, int type, void *event)
+_forecasts_url_data(void *data, int type EINA_UNUSED, void *event)
 {
-   Instance *inst;
-   Ecore_Con_Event_Server_Add *ev;
-   char buf[1024];
-   char forecast[1024];
+   Instance *inst = data;
+   Ecore_Con_Event_Url_Data *ev = event;
 
-   inst = data;
-   if (!inst)
-     return EINA_TRUE;
-
-   ev = event;
-   if ((!inst->server) || (inst->server != ev->server))
-     return EINA_TRUE;
-
-   snprintf(forecast, sizeof(forecast), "/weather.php?lat=%s&lon=%s", 
inst->ci->lat, inst->ci->lon);
-   snprintf(buf, sizeof(buf)-strlen(forecast)-(strlen(inst->ci->host)*2), "GET 
https://%s%s HTTP/1.1\r\n"
-                              "Host: %s\r\n"
-                              "Connection: close\r\n\r\n",
-            inst->ci->host, forecast, inst->ci->host);
-   DEBUG("Server: %s", buf);
-   ecore_con_server_send(inst->server, buf, strlen(buf));
+   if ((!inst->url) || (inst->url != ev->url_con)) return EINA_TRUE;
+   eina_strbuf_append_length(inst->buffer, (const char *)ev->data, ev->size);
    return EINA_FALSE;
 }
 
 static Eina_Bool
-_forecasts_server_del(void *data, int type, void *event)
+_forecasts_url_complete(void *data, int type EINA_UNUSED, void *event)
 {
-   Instance *inst;
-   Ecore_Con_Event_Server_Del *ev;
+   Instance *inst = data;
+   Ecore_Con_Event_Url_Complete *ev = event;
    int ret;
 
-   inst = data;
-   ev = event;
-   if ((!inst->server) || (inst->server != ev->server))
-     return EINA_TRUE;
-
-   ecore_con_server_del(inst->server);
-   inst->server = NULL;
+   if ((!inst->url) || (inst->url != ev->url_con)) return EINA_TRUE;
+   DEBUG("FC: status: %i %s", ev->status, 
eina_strbuf_string_get(inst->buffer));
+   ecore_con_url_free(inst->url);
+   inst->url = NULL;
 
    eina_stringshare_replace(&inst->location, inst->ci->location);
    ret = _forecasts_parse(inst);
@@ -631,22 +555,6 @@ _forecasts_server_del(void *data, int type, void *event)
    _forecasts_display_set(inst, ret);
 
    eina_strbuf_string_free(inst->buffer);
-
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-_forecasts_server_data(void *data, int type, void *event)
-{
-   Instance *inst;
-   Ecore_Con_Event_Server_Data *ev;
-
-   inst = data;
-   ev = event;
-
-   if ((!inst->server) || (inst->server != ev->server))
-     return EINA_TRUE;
-   eina_strbuf_append_length(inst->buffer, ev->data, ev->size);
    return EINA_FALSE;
 }
 
@@ -678,8 +586,8 @@ _epoch_days(struct tm *tm_in)
 static int
 _forecasts_parse(void *data)
 {
-   Instance *inst;
-   char *needle;
+   Instance *inst = data;
+   const char *result;
    const char *timestamp, *code;
    time_t now;
    struct tm *tm_local, *tm_data;
@@ -695,11 +603,7 @@ _forecasts_parse(void *data)
       "Sat",
    };
 
-   inst = data;
-   if (!inst)
-     return 0;
-   if (!inst->buffer)
-     return 0;
+   if (!inst->buffer) return 0;
 
    for (int i = 0; i < FORECASTS; i++)
      {
@@ -710,11 +614,10 @@ _forecasts_parse(void *data)
    tm_local = localtime(&now);
    days_prev = _epoch_days(tm_local);
 
-   needle = strstr(eina_strbuf_string_get(inst->buffer), "\r\n\r\n");
-   if (!needle) goto error;
-   needle += 4;
+   result = eina_strbuf_string_get(inst->buffer);
+   if (!result) goto error;
 
-   json_object *o_root = json_tokener_parse(needle);
+   json_object *o_root = json_tokener_parse(result);
    if (!o_root) goto error;
    json_object *o_properties = json_object_object_get(o_root, "properties");
    if (!o_properties) goto error;
@@ -805,7 +708,7 @@ _forecasts_parse(void *data)
    return 1;
 
 error:
-   fprintf(stderr, "ERROR: Couldn't parse info from %s\n", inst->ci->host);
+   printf("FC: ERROR: Couldn't parse info\n");
    return 0;
 }
 
@@ -871,13 +774,12 @@ _forecasts_convert_pressures(float *value, int dir)
 }
 
 static void
-_forecasts_display_set(Instance *inst, int ok)
+_forecasts_display_set(Instance *inst, int ok EINA_UNUSED)
 {
    char buf[4096];
    char m[4096];
 
-   if (!inst)
-     return;
+   if (!inst) return;
 
    snprintf(m, sizeof(m), "%s/forecasts.edj",
             e_module_dir_get(forecasts_config->module));
@@ -1175,13 +1077,12 @@ _forecasts_popup_destroy(Instance *inst)
 }
 
 static void
-_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
void *event_info)
 {
-   Instance *inst;
-   Evas_Event_Mouse_Down *ev;
-
-   if (!(inst = data)) return;
+   Instance *inst = data;
+   Evas_Event_Mouse_Up *ev = event_info;
 
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
    if (!inst->ci->popup_on_hover)
      {
         if (!inst->popup) _forecasts_popup_content_create(inst);
@@ -1189,33 +1090,25 @@ _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, 
void *event_info)
         return;
      }
 
-   ev = event_info;
-   if (ev->button == 1)
-     {
-        e_gadcon_popup_toggle_pinned(inst->popup);
-     }
+   if (ev->button == 1) e_gadcon_popup_toggle_pinned(inst->popup);
 }
 
 static void
-_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
void *event_info EINA_UNUSED)
 {
-   Instance *inst;
+   Instance *inst = data;
 
-   if (!(inst = data)) return;
    if (!inst->ci->popup_on_hover) return;
-
    if (!inst->popup) _forecasts_popup_content_create(inst);
    e_gadcon_popup_show(inst->popup);
 }
 
 static void
-_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
void *event_info EINA_UNUSED)
 {
-   Instance *inst;
+   Instance *inst = data;
 
-   if (!(inst = data)) return;
    if (!(inst->popup)) return;
-
    if (inst->popup->pinned) return;
    e_gadcon_popup_hide(inst->popup);
 }
diff --git a/src/e_mod_main.h b/src/e_mod_main.h
index 78dd1af..e867224 100644
--- a/src/e_mod_main.h
+++ b/src/e_mod_main.h
@@ -34,7 +34,6 @@ struct _Config_Item
 
    double poll_time;
    int degrees;
-   const char *host;
    int show_text;
    int popup_on_hover;
 

-- 


Reply via email to