Sync with efreet and some cleanup

SVN revision: 47478
This commit is contained in:
Sebastian Dransfeld 2010-03-26 05:34:34 +00:00
parent 93d2e401c1
commit 779ef9e24a
14 changed files with 154 additions and 183 deletions

View File

@ -41,7 +41,7 @@ e_configure_init(void)
handlers = eina_list_append
(handlers, ecore_event_handler_add
(EFREET_EVENT_CACHE_UPDATE, _e_configure_cb_efreet_desktop_cache_update, NULL));
_e_configure_efreet_desktop_update();
//_e_configure_efreet_desktop_update();
}
static void

View File

@ -9,9 +9,7 @@ static void _e_order_cb_monitor (void *data, Ecore_File_Monitor *em, Ecore_File_
static void _e_order_read (E_Order *eo);
static void _e_order_save (E_Order *eo);
#if 0
static int _e_order_cb_efreet_desktop_change(void *data, int ev_type, void *ev);
#endif
static int _e_order_cb_efreet_cache_update(void *data, int ev_type, void *ev);
static Eina_List *orders = NULL;
static Eina_List *handlers = NULL;
@ -20,9 +18,7 @@ static Eina_List *handlers = NULL;
EAPI int
e_order_init(void)
{
#if 0
handlers = eina_list_append(handlers, ecore_event_handler_add(EFREET_EVENT_DESKTOP_CHANGE, _e_order_cb_efreet_desktop_change, NULL));
#endif
handlers = eina_list_append(handlers, ecore_event_handler_add(EFREET_EVENT_CACHE_UPDATE, _e_order_cb_efreet_cache_update, NULL));
efreet_menu_file_set(e_config->default_system_menu);
return 1;
}
@ -263,67 +259,17 @@ _e_order_save(E_Order *eo)
fclose(f);
}
#if 0
static int
_e_order_cb_efreet_desktop_change(void *data, int ev_type, void *ev)
_e_order_cb_efreet_cache_update(void *data, int ev_type, void *ev)
{
Efreet_Event_Desktop_Change *event;
Eina_List *l;
E_Order *eo;
event = ev;
switch (event->change)
/* reread all .order files */
EINA_LIST_FOREACH(orders, l, eo)
{
case EFREET_DESKTOP_CHANGE_ADD:
/* If a desktop is added, reread all .order files */
EINA_LIST_FOREACH(orders, l, eo)
{
_e_order_read(eo);
if (eo->cb.update) eo->cb.update(eo->cb.data, eo);
}
break;
case EFREET_DESKTOP_CHANGE_REMOVE:
/* If a desktop is removed, drop the .desktop pointer */
EINA_LIST_FOREACH(orders, l, eo)
{
Eina_List *l2;
Efreet_Desktop *desktop;
int changed = 0;
EINA_LIST_FOREACH(eo->desktops, l2, desktop)
{
if (desktop == event->current)
{
efreet_desktop_free(desktop);
eo->desktops = eina_list_remove_list(eo->desktops, l2);
changed = 1;
}
}
if ((changed) && (eo->cb.update)) eo->cb.update(eo->cb.data, eo);
}
break;
case EFREET_DESKTOP_CHANGE_UPDATE:
/* If a desktop is updated, point to the new desktop and update */
EINA_LIST_FOREACH(orders, l, eo)
{
Eina_List *l2;
Efreet_Desktop *desktop;
int changed = 0;
EINA_LIST_FOREACH(eo->desktops, l2, desktop)
{
if (desktop == event->previous)
{
efreet_desktop_free(desktop);
efreet_desktop_ref(event->current);
l2->data = event->current;
changed = 1;
}
}
if ((changed) && (eo->cb.update)) eo->cb.update(eo->cb.data, eo);
}
break;
_e_order_read(eo);
if (eo->cb.update) eo->cb.update(eo->cb.data, eo);
}
return 1;
}
#endif

View File

@ -304,8 +304,6 @@ _load_order(const char *path)
efreet_desktop_ref(l->data);
apps = eina_list_append(apps, l->data);
}
/* FIXME: The test below will never be true ! */
if (l) eina_list_free(l);
e_object_del(E_OBJECT(order));
return apps;
}
@ -327,11 +325,9 @@ _fill_apps(E_Config_Dialog_Data *cfdata)
EINA_LIST_FREE(desks, desk)
{
if (!eina_list_search_unsorted(l, _cb_sort_desks, desk))
{
efreet_desktop_ref(desk);
l = eina_list_append(l, desk);
}
efreet_desktop_free(desk);
l = eina_list_append(l, desk);
else
efreet_desktop_free(desk);
}
l = eina_list_sort(l, 0, _cb_sort_desks);
@ -493,6 +489,7 @@ _cb_add(void *data, void *data2)
icon = e_util_desktop_icon_add(desk, 24, evas);
e_widget_ilist_append(cfdata->o_sel, icon, desk->name,
_sel_list_cb_selected, cfdata, desk->orig_path);
efreet_desktop_free(desk);
}
e_widget_ilist_go(cfdata->o_sel);
@ -564,6 +561,7 @@ _cb_up(void *data, void *data2)
_sel_list_cb_selected, cfdata,
desk->orig_path, (sel - 1));
e_widget_ilist_selected_set(cfdata->o_sel, (sel - 1));
efreet_desktop_free(desk);
}
}
e_widget_ilist_go(cfdata->o_sel);
@ -604,6 +602,7 @@ _cb_down(void *data, void *data2)
_sel_list_cb_selected, cfdata,
desk->orig_path, sel);
e_widget_ilist_selected_set(cfdata->o_sel, (sel + 1));
efreet_desktop_free(desk);
}
}
e_widget_ilist_go(cfdata->o_sel);
@ -633,6 +632,7 @@ _save_menu(E_Config_Dialog_Data *cfdata)
desk = efreet_util_desktop_name_find(lbl);
if (!desk) continue;
efreet_menu_desktop_insert(menu, desk, -1);
efreet_desktop_free(desk);
}
ret = efreet_menu_save(menu, cfdata->data->filename);
efreet_menu_free(menu);
@ -660,6 +660,7 @@ _save_order(E_Config_Dialog_Data *cfdata)
desk = efreet_util_desktop_name_find(lbl);
if (!desk) continue;
e_order_append(order, desk);
efreet_desktop_free(desk);
}
e_object_del(E_OBJECT(order));
return 1;

View File

@ -343,7 +343,10 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
Efreet_Desktop *desktop;
desktop = efreet_util_desktop_exec_find(imc->e_im_setup_exec);
if (desktop)
icon = e_util_desktop_icon_add(desktop, 48, evas);
{
icon = e_util_desktop_icon_add(desktop, 48, evas);
efreet_desktop_free(desktop);
}
}
e_widget_ilist_append(cfdata->gui.imc_basic_list, icon, imc->e_im_name, NULL, NULL, imc_path);

View File

@ -359,6 +359,7 @@ _e_exebuf_exe_free(E_Exebuf_Exe *exe)
evas_object_del(exe->bg_object);
if (exe->icon_object) evas_object_del(exe->icon_object);
if (exe->desktop) efreet_desktop_free(exe->desktop);
free(exe);
}
@ -370,7 +371,7 @@ _e_exebuf_matches_clear(void)
char *file;
EINA_LIST_FREE(eap_matches, desktop)
e_object_unref(E_OBJECT(desktop));
efreet_desktop_free(desktop);
EINA_LIST_FREE(exe_matches, file)
free(file);
@ -418,6 +419,7 @@ _e_exebuf_update(void)
icon_object = o;
edje_object_part_swallow(bg_object, "e.swallow.icons", o);
evas_object_show(o);
efreet_desktop_free(desktop);
}
}
@ -1035,8 +1037,12 @@ _e_exebuf_matches_update(void)
added = eina_hash_string_superfast_new(NULL);
eina_hash_add(added, exe, desktop);
}
free(exe);
else
efreet_desktop_free(desktop);
free(exe);
}
else
efreet_desktop_free(desktop);
}
snprintf(buf, sizeof(buf), "%s*", cmd_buf);
@ -1054,8 +1060,12 @@ _e_exebuf_matches_update(void)
added = eina_hash_string_superfast_new(NULL);
eina_hash_add(added, exe, desktop);
}
else
efreet_desktop_free(desktop);
free(exe);
}
}
else
efreet_desktop_free(desktop);
}
snprintf(buf, sizeof(buf), "*%s*", cmd_buf);
@ -1073,8 +1083,12 @@ _e_exebuf_matches_update(void)
added = eina_hash_string_superfast_new(NULL);
eina_hash_add(added, exe, desktop);
}
else
efreet_desktop_free(desktop);
free(exe);
}
else
efreet_desktop_free(desktop);
}
snprintf(buf, sizeof(buf), "*%s*", cmd_buf);
@ -1092,8 +1106,12 @@ _e_exebuf_matches_update(void)
added = eina_hash_string_superfast_new(NULL);
eina_hash_add(added, exe, desktop);
}
else
efreet_desktop_free(desktop);
free(exe);
}
else
efreet_desktop_free(desktop);
}
if (added) eina_hash_free(added);
@ -1246,7 +1264,7 @@ _e_exebuf_hist_update(Eina_List *hist_matches)
Evas_Coord mw, mh;
Evas_Object *o;
Efreet_Desktop *desktop;
int found = 0;
Efreet_Desktop *found = NULL;
int len;
char *tmp;
char match[4096];
@ -1274,15 +1292,14 @@ _e_exebuf_hist_update(Eina_List *hist_matches)
EINA_LIST_FREE(ll, desktop)
{
if (desktop->exec && !strncmp(file, desktop->exec, len))
{
found = 1;
break;
}
found = desktop;
else
efreet_desktop_free(desktop);
}
if (found)
{
exe->desktop = desktop;
exe->desktop = found;
edje_object_part_text_set(o, "e.text.title", desktop->name);
if (edje_object_part_exists(exe->bg_object, "e.swallow.icons"))

View File

@ -666,11 +666,13 @@ _e_fwin_suggested_apps_list_get(Eina_List *files, Eina_List **mime_list)
apps = eina_list_merge(apps, efreet_util_desktop_mime_list(mime));
/* 4. create a new list without duplicates */
EINA_LIST_FOREACH(apps, l, desk)
if (!eina_list_data_find(ret, desk))
ret = eina_list_append(ret, desk);
if (apps) apps = eina_list_free(apps);
EINA_LIST_FREE(apps, desk)
{
if (!eina_list_data_find(ret, desk))
ret = eina_list_append(ret, desk);
else
efreet_desktop_free(desk);
}
if (mime_list)
*mime_list = mlist;
@ -1245,6 +1247,8 @@ _e_fwin_cb_all_change(void *data, Evas_Object *obj)
desktop = efreet_util_desktop_file_id_find(fad->app2);
if ((desktop) && (desktop->exec))
e_widget_entry_text_set(fad->o_entry, desktop->exec);
if (desktop)
efreet_desktop_free(desktop);
}
static void
@ -1842,7 +1846,7 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
e_widget_ilist_freeze(o);
// Adding Specific Applications list into widget
if(apps)
if (apps)
e_widget_ilist_header_append(o, NULL, _("Specific Applications"));
EINA_LIST_FOREACH(apps, l, desk)
{
@ -1858,12 +1862,16 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
cats = efreet_util_desktop_name_glob_list("*");
cats = eina_list_sort(cats, 0, _e_fwin_dlg_cb_desk_sort);
EINA_LIST_FREE(cats, desk)
{
if (!eina_list_data_find(l, desk) && !eina_list_data_find(apps, desk))
l = eina_list_append(l, desk);
else
efreet_desktop_free(desk);
}
l = eina_list_sort(l, -1, _e_fwin_dlg_cb_desk_list_sort);
// Adding All Applications list into widget
if(l)
if (l)
e_widget_ilist_header_append(o, NULL, _("All Applications"));
EINA_LIST_FREE(l, desk)
{
@ -1873,9 +1881,11 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
icon = e_util_desktop_icon_add(desk, 24, evas);
e_widget_ilist_append(o, icon, desk->name, NULL, NULL,
efreet_util_path_to_file_id(desk->orig_path));
efreet_desktop_free(desk);
}
eina_list_free(apps);
EINA_LIST_FREE(apps, desk)
efreet_desktop_free(desk);
e_widget_ilist_go(o);
e_widget_ilist_thaw(o);
@ -1943,14 +1953,17 @@ _e_fwin_cb_exec_cmd_changed(void *data, void *data2)
if (!(fad = data)) return;
if (fad->app2)
if (fad->app2)
desktop = efreet_util_desktop_file_id_find(fad->app2);
if (!desktop) return;
if (!strcmp(desktop->exec, fad->exec_cmd)) return;
eina_stringshare_del(fad->app2);
if (fad->o_all) e_widget_ilist_unselect(fad->o_all);
if (strcmp(desktop->exec, fad->exec_cmd))
{
eina_stringshare_del(fad->app2);
fad->app2 = NULL;
if (fad->o_all) e_widget_ilist_unselect(fad->o_all);
}
efreet_desktop_free(desktop);
}
@ -1964,7 +1977,11 @@ _e_fwin_cb_open(void *data, E_Dialog *dia)
if (fad->app2)
desktop = efreet_util_desktop_file_id_find(fad->app2);
if ((!desktop) && (!fad->exec_cmd)) return;
if ((!desktop) && (!fad->exec_cmd))
{
if (desktop) efreet_desktop_free(desktop);
return;
}
// Create a fake .desktop for custom command.
if (!desktop)
@ -1985,9 +2002,7 @@ _e_fwin_cb_open(void *data, E_Dialog *dia)
if ((desktop) || (strcmp(fad->exec_cmd, "")))
_e_fwin_desktop_run(desktop, fad->fwin->cur_page, EINA_FALSE);
// Free fake .desktop
if (!strcmp(fad->exec_cmd, ""))
efreet_desktop_free(desktop);
efreet_desktop_free(desktop);
e_object_del(E_OBJECT(fad->dia));
}

View File

@ -61,10 +61,7 @@ static void _il_home_apps_populate(void);
static void _il_home_apps_unpopulate(void);
static void _il_home_fmc_set(Evas_Object *obj);
static void _il_home_desks_populate(void);
#if 0
static int _il_home_desktop_list_change(void *data, int type, void *event);
static int _il_home_desktop_change(void *data, int type, void *event);
#endif
static int _il_home_desktop_cache_update(void *data, int type, void *event);
static int _il_home_update_deferred(void *data);
static int _il_home_win_cb_exe_del(void *data, int type, void *event);
static E_Border *_il_home_desktop_find_border(E_Zone *zone, Efreet_Desktop *desktop);
@ -100,18 +97,11 @@ e_modapi_init(E_Module *m)
_il_home_apps_unpopulate();
_il_home_apps_populate();
#if 0
handlers =
eina_list_append(handlers,
ecore_event_handler_add(EFREET_EVENT_DESKTOP_LIST_CHANGE,
_il_home_desktop_list_change,
ecore_event_handler_add(EFREET_EVENT_CACHE_UPDATE,
_il_home_desktop_cache_update,
NULL));
handlers =
eina_list_append(handlers,
ecore_event_handler_add(EFREET_EVENT_DESKTOP_CHANGE,
_il_home_desktop_change, NULL));
#endif
handlers =
eina_list_append(handlers,
ecore_event_handler_add(E_EVENT_BORDER_ADD,
@ -150,7 +140,8 @@ e_modapi_shutdown(E_Module *m)
exe->handle = NULL;
}
if (exe->timeout) ecore_timer_del(exe->timeout);
E_FREE(exe);
if (exe->desktop) efreet_desktop_free(exe->desktop);
E_FREE(exe);
}
_il_home_apps_unpopulate();
@ -659,31 +650,22 @@ _il_home_desks_populate(void)
num++;
}
}
efreet_menu_free(menu);
}
}
#if 0
static int
_il_home_desktop_list_change(void *data, int type, void *event)
_il_home_desktop_cache_update(void *data, int type, void *event)
{
_il_home_apps_unpopulate();
if (defer) ecore_timer_del(defer);
defer = ecore_timer_add(1.0, _il_home_update_deferred, NULL);
return 1;
}
static int
_il_home_desktop_change(void *data, int type, void *event)
{
if (defer) ecore_timer_del(defer);
defer = ecore_timer_add(1.0, _il_home_update_deferred, NULL);
return 1;
}
#endif
static int
_il_home_update_deferred(void *data)
{
_il_home_apps_unpopulate();
_il_home_apps_populate();
defer = NULL;
return 0;
@ -708,6 +690,7 @@ _il_home_win_cb_exe_del(void *data, int type, void *event)
}
exes = eina_list_remove_list(exes, l);
if (exe->timeout) ecore_timer_del(exe->timeout);
if (exe->desktop) efreet_desktop_free(exe->desktop);
E_FREE(exe);
return 1;
}
@ -787,7 +770,8 @@ _il_home_win_cb_timeout(void *data)
if (!exe->border)
{
exes = eina_list_remove(exes, exe);
E_FREE(exe);
if (exe->desktop) efreet_desktop_free(exe->desktop);
E_FREE(exe);
return 0;
}
exe->timeout = NULL;

View File

@ -164,6 +164,8 @@ _il_kbd_config_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata
}
nn++;
}
EINA_LIST_FREE(kbds, desktop)
efreet_desktop_free(desktop);
}
}
@ -181,14 +183,15 @@ _il_kbd_config_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata
int nn = 2;
kbds = efreet_util_desktop_category_list("Keyboard");
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FREE(kbds, desktop)
{
ow = e_widget_radio_add(evas, desktop->name, nn, rg);
e_widget_framelist_object_append(of, ow);
evas_object_smart_callback_add(ow, "changed",
_il_kbd_config_changed, NULL);
efreet_desktop_free(desktop);
nn++;
}
}
}
e_widget_list_object_append(list, of, 1, 0, 0.0);
return list;
@ -239,6 +242,8 @@ _il_kbd_config_change_timeout(void *data)
}
nn++;
}
EINA_LIST_FREE(kbds, desktop)
efreet_desktop_free(desktop);
}
}

View File

@ -71,12 +71,13 @@ _il_kbd_start(void)
desktop = efreet_util_desktop_file_id_find(il_kbd_cfg->run_keyboard);
if (!desktop)
{
Efreet_Desktop *d;
Eina_List *kbds, *l;
kbds = efreet_util_desktop_category_list("Keyboard");
if (kbds)
{
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FOREACH(kbds, l, d)
{
const char *dname;
@ -84,9 +85,15 @@ _il_kbd_start(void)
if (dname)
{
if (!strcmp(dname, il_kbd_cfg->run_keyboard))
break;
{
desktop = d;
efreet_desktop_ref(desktop);
break;
}
}
}
EINA_LIST_FREE(kbds, d)
efreet_desktop_free(d);
}
}
if (desktop)
@ -102,6 +109,7 @@ _il_kbd_start(void)
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
_il_kbd_cb_exit, NULL);
}
efreet_desktop_free(desktop);
}
}
}

View File

@ -1013,7 +1013,7 @@ static int _e_cfg_keyboard_change_timeout(void *data)
if (kbds)
{
nn = 2;
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FREE(kbds, desktop)
{
const char *dname;
@ -1024,13 +1024,15 @@ static int _e_cfg_keyboard_change_timeout(void *data)
illume_cfg->kbd.run_keyboard = eina_stringshare_add(dname);
break;
}
efreet_desktop_free(desktop);
nn++;
}
}
}
e_mod_win_cfg_kbd_update();
e_config_save_queue();
_e_cfg_keyboard_change_timer = NULL; return 0;
_e_cfg_keyboard_change_timer = NULL;
return 0;
}
static void
_e_cfg_keyboard_change(void *data, Evas_Object *obj, void *event_info) {
@ -1078,7 +1080,7 @@ _e_cfg_keyboard_ui(E_Config_Dialog *cfd, Evas *e, E_Config_Dialog_Data *cfdata)
if (kbds)
{
nn = 2;
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FREE(kbds, desktop)
{
const char *dname;
@ -1091,6 +1093,7 @@ _e_cfg_keyboard_ui(E_Config_Dialog *cfd, Evas *e, E_Config_Dialog_Data *cfdata)
break;
}
}
efreet_desktop_free(desktop);
nn++;
}
}
@ -1110,11 +1113,12 @@ _e_cfg_keyboard_ui(E_Config_Dialog *cfd, Evas *e, E_Config_Dialog_Data *cfdata)
int nn = 2;
kbds = efreet_util_desktop_category_list("Keyboard");
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FREE(kbds, desktop)
{
o = e_widget_radio_add(e, desktop->name, nn, rg);
e_widget_framelist_object_append(frame, o);
evas_object_smart_callback_add(o, "changed", _e_cfg_keyboard_change, NULL);
efreet_desktop_free(desktop);
nn++;
}
}

View File

@ -59,6 +59,7 @@ _e_fluanch_cb_app_button(void *data)
desktop = efreet_util_desktop_file_id_find(fla->desktop);
if (!desktop) return;
if (fla->flaunch->desktop_run_func) fla->flaunch->desktop_run_func(desktop);
efreet_desktop_free(desktop);
}
static E_Flaunch_App *
@ -76,6 +77,7 @@ _e_flaunch_app_add(E_Flaunch *fl, const char *deskfile)
e_box_pack_end(fl->app_box_obj, fla->obj);
e_box_pack_options_set(fla->obj, 1, 1, 1, 1, 0.5, 0.5, 0, 0, 9999, 9999);
evas_object_show(fla->obj);
if (desktop) efreet_desktop_free(desktop);
return fla;
}
@ -132,6 +134,8 @@ _e_flaunch_apps_populate(E_Flaunch *fl)
}
if (num >= max) break;
}
EINA_LIST_FREE(bar_desktops, desktop)
efreet_desktop_free(desktop);
}
while (num < max)
{
@ -190,9 +194,8 @@ _e_flaunch_cb_delayed_repopulate(void *data)
return 0;
}
#if 0
static int
_e_flaunch_cb_desktop_list_change(void *data, int type, void *event)
_e_flaunch_cb_cache_update(void *data, int type, void *event)
{
E_Flaunch *fl;
@ -202,18 +205,6 @@ _e_flaunch_cb_desktop_list_change(void *data, int type, void *event)
return 1;
}
static int
_e_flaunch_cb_desktop_change(void *data, int type, void *event)
{
E_Flaunch *fl;
fl = data;
if (fl->repopulate_timer) ecore_timer_del(fl->repopulate_timer);
fl->repopulate_timer = ecore_timer_add(0.5, _e_flaunch_cb_delayed_repopulate, fl);
return 1;
}
#endif
EAPI int
e_flaunch_init(void)
{
@ -271,14 +262,9 @@ e_flaunch_new(E_Zone *zone, const char *themedir)
fl->handlers = eina_list_append
(fl->handlers, ecore_event_handler_add
(E_EVENT_ZONE_MOVE_RESIZE, _e_flaunch_cb_zone_move_resize, fl));
#if 0
fl->handlers = eina_list_append
(fl->handlers, ecore_event_handler_add
(EFREET_EVENT_DESKTOP_LIST_CHANGE, _e_flaunch_cb_desktop_list_change, fl));
fl->handlers = eina_list_append
(fl->handlers, ecore_event_handler_add
(EFREET_EVENT_DESKTOP_CHANGE, _e_flaunch_cb_desktop_change, fl));
#endif
(EFREET_EVENT_CACHE_UPDATE, _e_flaunch_cb_cache_update, fl));
return fl;
}

View File

@ -51,10 +51,7 @@ static void _cb_slipwin_border_select(void *data, E_Slipwin *esw, E_Border *bd);
static void _cb_slipshelf_border_select(void *data, E_Slipshelf *ess, E_Border *bd);
static void _cb_slipshelf_border_home2(void *data, E_Slipshelf *ess, E_Border *pbd);
static void _cb_selected(void *data, Evas_Object *obj, void *event_info);
#if 0
static int _cb_efreet_desktop_list_change(void *data, int type, void *event);
static int _cb_efreet_desktop_change(void *data, int type, void *event);
#endif
static int _cb_efreet_cache_update(void *data, int type, void *event);
static void _apps_unpopulate(void);
static void _apps_populate(void);
static int _cb_update_deferred(void *data);
@ -159,14 +156,9 @@ _e_mod_win_init(E_Module *m)
handlers = eina_list_append
(handlers, ecore_event_handler_add
(ECORE_EXE_EVENT_DEL, _cb_event_exe_del, NULL));
#if 0
handlers = eina_list_append
(handlers, ecore_event_handler_add
(EFREET_EVENT_DESKTOP_LIST_CHANGE, _cb_efreet_desktop_list_change, NULL));
handlers = eina_list_append
(handlers, ecore_event_handler_add
(EFREET_EVENT_DESKTOP_CHANGE, _cb_efreet_desktop_change, NULL));
#endif
(EFREET_EVENT_CACHE_UPDATE, _cb_efreet_cache_update, NULL));
handlers = eina_list_append
(handlers, ecore_event_handler_add
(E_EVENT_ZONE_MOVE_RESIZE, _cb_zone_move_resize, NULL));
@ -269,11 +261,12 @@ e_mod_win_cfg_kbd_start(void)
if (!desktop)
{
Eina_List *kbds;
Efreet_Desktop *d;
kbds = efreet_util_desktop_category_list("Keyboard");
if (kbds)
{
EINA_LIST_FOREACH(kbds, l, desktop)
EINA_LIST_FREE(kbds, d)
{
const char *dname;
@ -281,8 +274,12 @@ e_mod_win_cfg_kbd_start(void)
if (dname)
{
if (!strcmp(dname, illume_cfg->kbd.run_keyboard))
break;
{
desktop = d;
efreet_desktop_ref(desktop);
}
}
efreet_desktop_free(d);
}
}
}
@ -294,6 +291,7 @@ e_mod_win_cfg_kbd_start(void)
_kbd_exe = exeinst->exe;
_kbd_exe_exit_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _e_mod_win_win_cfg_kbd_cb_exit, NULL);
}
efreet_desktop_free(desktop);
}
}
}
@ -672,6 +670,7 @@ _desktop_run(Efreet_Desktop *desktop)
ins = calloc(1, sizeof(Instance));
if (!ins) return;
eins = e_exec(zone, desktop, NULL, NULL, "illume-launcher");
efreet_desktop_ref(desktop);
ins->desktop = desktop;
if (eins)
{
@ -945,7 +944,7 @@ static void
_apps_unpopulate(void)
{
char buf[PATH_MAX];
Efreet_Desktop *desktop;
Efreet_Desktop *desktop;
Evas_Object *obj;
Eina_List *files;
char *file;
@ -954,9 +953,6 @@ _apps_unpopulate(void)
EINA_LIST_FREE(sels, obj)
evas_object_del(obj);
EINA_LIST_FREE(desks, desktop)
efreet_desktop_free(desktop);
if (bx) evas_object_del(bx);
bx = NULL;
@ -1049,6 +1045,7 @@ _apps_populate(void)
e_scrollframe_child_viewport_size_get(sf, &sfw, &sfh);
{
// TODO: Needs some efreet love
Efreet_Menu *menu, *entry, *subentry;
char *label, *icon, *plabel;
Eina_List *settings_desktops, *system_desktops, *keyboard_desktops;
@ -1199,27 +1196,26 @@ _cb_selected(void *data, Evas_Object *obj, void *event_info)
Efreet_Desktop *desktop;
desktop = efreet_desktop_get(ici->real_link);
if (desktop) _desktop_run(desktop);
if (desktop)
{
_desktop_run(desktop);
efreet_desktop_free(desktop);
}
}
}
#if 0
static int
_cb_efreet_desktop_list_change(void *data, int type, void *event)
_cb_efreet_cache_update(void *data, int type, void *event)
{
if (defer) ecore_timer_del(defer);
defer = ecore_timer_add(1.0, _cb_update_deferred, NULL);
return 1;
}
Efreet_Desktop *desktop;
EINA_LIST_FREE(desks, desktop)
efreet_desktop_free(desktop);
static int
_cb_efreet_desktop_change(void *data, int type, void *event)
{
if (defer) ecore_timer_del(defer);
defer = ecore_timer_add(1.0, _cb_update_deferred, NULL);
return 1;
}
#endif
static int
_cb_update_deferred(void *data)

View File

@ -120,8 +120,6 @@ _app_write(App *a)
a->name, a->generic, a->comment, a->exec, a->icon);
if (a->extra) fprintf(f, "%s\n", a->extra);
fclose(f);
/* TODO: This will leak */
efreet_desktop_get(buf);
}
EAPI int
@ -138,7 +136,11 @@ wizard_page_init(E_Wizard_Page *pg)
{
char dbuf[4096];
if (!desk->exec) continue;
if (!desk->exec)
{
efreet_desktop_free(desk);
continue;
}
if (sscanf(desk->exec, "%4000s", dbuf) == 1)
{
for (i = 0; i < (sizeof(apps) / sizeof(App)); i++)
@ -172,6 +174,7 @@ wizard_page_init(E_Wizard_Page *pg)
}
}
}
efreet_desktop_free(desk);
}
efreet_util_shutdown();

View File

@ -29,8 +29,11 @@ wizard_page_init(E_Wizard_Page *pg)
desks = eina_list_sort(desks, 0, (Eina_Compare_Cb)_cb_sort_desks);
EINA_LIST_FREE(desks, desk)
{
if (!desk->exec) continue;
efreet_desktop_ref(desk);
if (!desk->exec)
{
efreet_desktop_free(desk);
continue;
}
desktops = eina_list_append(desktops, desk);
}
efreet_util_shutdown();