Fix some crashes and a bunch of memory leaks/errors. There are still a few memory leaks originating deep within ewl somewhere. Also, if you don't open the config_inwin before closing the program, there are some errors.

This commit is contained in:
Jaime Thomas
2009-02-06 04:03:13 +00:00
parent 22a49f6d1b
commit 9ebf4666e3
7 changed files with 144 additions and 39 deletions

View File

@ -1011,6 +1011,27 @@ ecdb_combo_data_set(Evas_Object *c, void *data)
cd->data = data;
}
void *
ecdb_combo_data_get(Evas_Object *c)
{
Combo_Data *cd;
if (!c)
{
printf("ecdb_combo_data_get: NULL object!\n");
return NULL;
}
cd = evas_object_data_get(c, "cd");
if (!cd)
{
printf("ecdb_combo_data_set: NULL data!\n");
return NULL;
}
return cd->data;
}
void
ecdb_combo_clear(Evas_Object *c)
{
@ -1097,8 +1118,13 @@ _config_inwin_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)
iwd = data;
evas_object_hide(iwd->popup);
evas_object_hide(iwd->back);
if (iwd)
{
if (iwd->popup)
evas_object_hide(iwd->popup);
if (iwd->back)
evas_object_hide(iwd->back);
}
}
static void
@ -1177,12 +1203,13 @@ ecdb_config_inwin_show(Evas_Object *inwin)
evas_object_pass_events_set(iwd->back, 0);
evas_object_layer_set(iwd->back, evas_object_layer_get(iwd->parent) + 1);
evas_object_raise(iwd->back);
edje_object_signal_emit(iwd->back, "ecdb,config_inwin,back,show", "ecdb");
evas_object_pass_events_set(iwd->popup, 0);
evas_object_layer_set(iwd->popup, evas_object_layer_get(iwd->back) + 1);
edje_object_signal_emit(iwd->popup, "ecdb,config_inwin,popup,show",
"ecdb");
evas_object_raise(iwd->popup);
edje_object_signal_emit(iwd->popup, "ecdb,config_inwin,popup,show", "ecdb");
iwd->visible = 1;
}