summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSebastian Dransfeld <sd@tango.flipp.net>2010-03-26 05:34:34 +0000
committerSebastian Dransfeld <sd@tango.flipp.net>2010-03-26 05:34:34 +0000
commit779ef9e24a3877748c9014af11b9f2db4c8d4eaa (patch)
tree80316cdd4abcfe473d7424d891bcce6e7e752477 /src
parent93d2e401c1b77b87da2973a4a5a93b5207f3d774 (diff)
downloadenlightenment-779ef9e24a3877748c9014af11b9f2db4c8d4eaa.tar.gz
Sync with efreet and some cleanup
SVN revision: 47478
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_configure.c2
-rw-r--r--src/bin/e_order.c68
-rw-r--r--src/modules/conf_applications/e_int_config_apps.c15
-rw-r--r--src/modules/conf_imc/e_int_config_imc.c5
-rw-r--r--src/modules/exebuf/e_exebuf.c35
-rw-r--r--src/modules/fileman/e_fwin.c49
-rw-r--r--src/modules/illume-home/e_mod_main.c38
-rw-r--r--src/modules/illume-keyboard/e_mod_config.c9
-rw-r--r--src/modules/illume-keyboard/e_mod_main.c12
-rw-r--r--src/modules/illume/e_cfg.c12
-rw-r--r--src/modules/illume/e_flaunch.c26
-rw-r--r--src/modules/illume/e_mod_win.c50
-rw-r--r--src/modules/wizard/page_070.c9
-rw-r--r--src/modules/wizard/page_080.c7
14 files changed, 154 insertions, 183 deletions
diff --git a/src/bin/e_configure.c b/src/bin/e_configure.c
index 4df29c44be..f2b9d0caf5 100644
--- a/src/bin/e_configure.c
+++ b/src/bin/e_configure.c
@@ -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
diff --git a/src/bin/e_order.c b/src/bin/e_order.c
index 52316d1dae..749c0aed7b 100644
--- a/src/bin/e_order.c
+++ b/src/bin/e_order.c
@@ -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
diff --git a/src/modules/conf_applications/e_int_config_apps.c b/src/modules/conf_applications/e_int_config_apps.c
index 4909d6080f..01cdc0af18 100644
--- a/src/modules/conf_applications/e_int_config_apps.c
+++ b/src/modules/conf_applications/e_int_config_apps.c
@@ -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;
diff --git a/src/modules/conf_imc/e_int_config_imc.c b/src/modules/conf_imc/e_int_config_imc.c
index 81279d1416..2dea701ec0 100644
--- a/src/modules/conf_imc/e_int_config_imc.c
+++ b/src/modules/conf_imc/e_int_config_imc.c
@@ -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);
diff --git a/src/modules/exebuf/e_exebuf.c b/src/modules/exebuf/e_exebuf.c
index 41bfb22bd4..cdf80d0453 100644
--- a/src/modules/exebuf/e_exebuf.c
+++ b/src/modules/exebuf/e_exebuf.c
@@ -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"))
diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c
index b804914d6c..b9f7327847 100644
--- a/src/modules/fileman/e_fwin.c
+++ b/src/modules/fileman/e_fwin.c
@@ -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));
}
diff --git a/src/modules/illume-home/e_mod_main.c b/src/modules/illume-home/e_mod_main.c
index 7756e59c9a..41dbea1464 100644
--- a/src/modules/illume-home/e_mod_main.c
+++ b/src/modules/illume-home/e_mod_main.c
@@ -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,20 +97,13 @@ 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,
_il_home_border_add, NULL));
handlers =
@@ -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)
-{
- 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)
+_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;
}
-#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;
diff --git a/src/modules/illume-keyboard/e_mod_config.c b/src/modules/illume-keyboard/e_mod_config.c
index 19f06f1124..dfa43fa236 100644
--- a/src/modules/illume-keyboard/e_mod_config.c
+++ b/src/modules/illume-keyboard/e_mod_config.c
@@ -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);
}
}
diff --git a/src/modules/illume-keyboard/e_mod_main.c b/src/modules/illume-keyboard/e_mod_main.c
index f3ea782b30..368ed7c743 100644
--- a/src/modules/illume-keyboard/e_mod_main.c
+++ b/src/modules/illume-keyboard/e_mod_main.c
@@ -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);
}
}
}
diff --git a/src/modules/illume/e_cfg.c b/src/modules/illume/e_cfg.c
index 485171b8a3..532995bc4b 100644
--- a/src/modules/illume/e_cfg.c
+++ b/src/modules/illume/e_cfg.c
@@ -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++;
}
}
diff --git a/src/modules/illume/e_flaunch.c b/src/modules/illume/e_flaunch.c
index bae050fdab..6f017f7f98 100644
--- a/src/modules/illume/e_flaunch.c
+++ b/src/modules/illume/e_flaunch.c
@@ -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;
}
diff --git a/src/modules/illume/e_mod_win.c b/src/modules/illume/e_mod_win.c
index 8e34dae8a0..527705e556 100644
--- a/src/modules/illume/e_mod_win.c
+++ b/src/modules/illume/e_mod_win.c
@@ -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)
diff --git a/src/modules/wizard/page_070.c b/src/modules/wizard/page_070.c
index 4c8283ca76..3c0fc4ff8d 100644
--- a/src/modules/wizard/page_070.c
+++ b/src/modules/wizard/page_070.c
@@ -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();
diff --git a/src/modules/wizard/page_080.c b/src/modules/wizard/page_080.c
index 96b0a1fd6a..da35c42672 100644
--- a/src/modules/wizard/page_080.c
+++ b/src/modules/wizard/page_080.c
@@ -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();