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:
@@ -7,12 +7,22 @@ static void _button_cb_return(void *data, Evas_Object *obj,
|
||||
static void _button_cb_begin(void *data, Evas_Object *obj,
|
||||
const char *emission,
|
||||
const char *source);
|
||||
static void _combo_cb_clicked(void *data, Evas_Object *obj,
|
||||
const char *emission,
|
||||
const char *source);
|
||||
static void _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _page_hide_finished(void *data, Evas_Object *o,
|
||||
const char *emission,
|
||||
const char *source);
|
||||
static void _page_del(void *data, Evas *e, Evas_Object *obj, void *ev);
|
||||
|
||||
static void
|
||||
_page_del(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj,
|
||||
void *ev __UNUSED__)
|
||||
{
|
||||
Ecdb_Image_Project *proj;
|
||||
|
||||
proj = evas_object_data_get(obj, "proj");
|
||||
if (proj)
|
||||
ecdb_image_project_destroy(proj);
|
||||
}
|
||||
|
||||
static void
|
||||
_page_hide_finished(void *data, Evas_Object *o, const char *emission __UNUSED__,
|
||||
@@ -134,8 +144,7 @@ _button_cb_begin(void *data, Evas_Object *obj __UNUSED__,
|
||||
|
||||
static void
|
||||
_combo_cb_clicked(void *data, Evas_Object *obj __UNUSED__,
|
||||
const char *emission __UNUSED__,
|
||||
const char *source __UNUSED__)
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *b;
|
||||
Ecdb_Burn_Project *bp;
|
||||
@@ -148,7 +157,12 @@ _combo_cb_clicked(void *data, Evas_Object *obj __UNUSED__,
|
||||
if (sel < 0)
|
||||
return;
|
||||
|
||||
drive = eina_list_nth(em->drives, sel);
|
||||
ECDB_PROJECT(bp)->drive = drive = eina_list_nth(em->drives, sel);
|
||||
|
||||
/* Don't keep adding items to the combo if the drive hasn't changed */
|
||||
if (drive == ecdb_combo_data_get(bp->speed_combo))
|
||||
return;
|
||||
|
||||
num_speeds = drive->write_speeds[0];
|
||||
ecdb_combo_data_set(bp->speed_combo, drive);
|
||||
for (i = 1; i < num_speeds; i++)
|
||||
@@ -199,6 +213,8 @@ ecdb_burn_image_page_show(Ecdb_Page *page)
|
||||
evas_object_move(page->gui, x, y);
|
||||
evas_object_resize(page->image, w, h);
|
||||
edje_object_part_swallow(page->gui, "action_area", page->image);
|
||||
evas_object_event_callback_add(page->image, EVAS_CALLBACK_DEL, _page_del,
|
||||
page);
|
||||
edje_object_signal_callback_add(page->image, "hide,finished",
|
||||
"burn_image_page",
|
||||
_page_hide_finished, page->gui);
|
||||
@@ -245,8 +261,7 @@ ecdb_burn_image_page_show(Ecdb_Page *page)
|
||||
{
|
||||
b = ecdb_combo_item_add(bp->drive_combo, NULL);
|
||||
ecdb_combo_item_label_set(b, drive->product);
|
||||
edje_object_signal_callback_add(b, "mouse,clicked,1", "*",
|
||||
_combo_cb_clicked, proj);
|
||||
evas_object_smart_callback_add(b, "clicked", _combo_cb_clicked, proj);
|
||||
ecdb_combo_append(bp->drive_combo, b);
|
||||
evas_object_show(b);
|
||||
}
|
||||
|
Reference in New Issue
Block a user