ref and free desktops for .order files.
SVN revision: 30992
This commit is contained in:
parent
175c2ab88d
commit
6d53b0d420
|
@ -903,11 +903,6 @@ main(int argc, char **argv)
|
||||||
/* if we were flagged to restart, then restart. */
|
/* if we were flagged to restart, then restart. */
|
||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
/* selected shutdown */
|
|
||||||
#if 0
|
|
||||||
e_ipc_shutdown();
|
|
||||||
ecore_file_shutdown();
|
|
||||||
#endif
|
|
||||||
e_util_env_set("E_RESTART_OK", "1");
|
e_util_env_set("E_RESTART_OK", "1");
|
||||||
ecore_app_restart();
|
ecore_app_restart();
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,10 +68,15 @@ e_order_update_callback_set(E_Order *eo, void (*cb)(void *data, E_Order *eo), vo
|
||||||
EAPI void
|
EAPI void
|
||||||
e_order_remove(E_Order *eo, Efreet_Desktop *desktop)
|
e_order_remove(E_Order *eo, Efreet_Desktop *desktop)
|
||||||
{
|
{
|
||||||
|
Evas_List *tmp;
|
||||||
|
|
||||||
E_OBJECT_CHECK(eo);
|
E_OBJECT_CHECK(eo);
|
||||||
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
||||||
|
|
||||||
eo->desktops = evas_list_remove(eo->desktops, desktop);
|
tmp = evas_list_find_list(eo->desktops, desktop);
|
||||||
|
if (!tmp) return;
|
||||||
|
efreet_desktop_free(tmp->data);
|
||||||
|
eo->desktops = evas_list_remove_list(eo->desktops, tmp);
|
||||||
_e_order_save(eo);
|
_e_order_save(eo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +86,7 @@ e_order_append(E_Order *eo, Efreet_Desktop *desktop)
|
||||||
E_OBJECT_CHECK(eo);
|
E_OBJECT_CHECK(eo);
|
||||||
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
||||||
|
|
||||||
|
efreet_desktop_ref(desktop);
|
||||||
eo->desktops = evas_list_append(eo->desktops, desktop);
|
eo->desktops = evas_list_append(eo->desktops, desktop);
|
||||||
_e_order_save(eo);
|
_e_order_save(eo);
|
||||||
}
|
}
|
||||||
|
@ -91,6 +97,7 @@ e_order_prepend_relative(E_Order *eo, Efreet_Desktop *desktop, Efreet_Desktop *b
|
||||||
E_OBJECT_CHECK(eo);
|
E_OBJECT_CHECK(eo);
|
||||||
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
||||||
|
|
||||||
|
efreet_desktop_ref(desktop);
|
||||||
eo->desktops = evas_list_prepend_relative(eo->desktops, desktop, before);
|
eo->desktops = evas_list_prepend_relative(eo->desktops, desktop, before);
|
||||||
_e_order_save(eo);
|
_e_order_save(eo);
|
||||||
}
|
}
|
||||||
|
@ -144,7 +151,10 @@ e_order_clear(E_Order *eo)
|
||||||
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(eo, E_ORDER_TYPE);
|
||||||
|
|
||||||
while (eo->desktops)
|
while (eo->desktops)
|
||||||
eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
|
{
|
||||||
|
efreet_desktop_free(eo->desktops->data);
|
||||||
|
eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
|
||||||
|
}
|
||||||
_e_order_save(eo);
|
_e_order_save(eo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +162,11 @@ e_order_clear(E_Order *eo)
|
||||||
static void
|
static void
|
||||||
_e_order_free(E_Order *eo)
|
_e_order_free(E_Order *eo)
|
||||||
{
|
{
|
||||||
evas_list_free(eo->desktops);
|
while (eo->desktops)
|
||||||
|
{
|
||||||
|
efreet_desktop_free(eo->desktops->data);
|
||||||
|
eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
|
||||||
|
}
|
||||||
if (eo->path) evas_stringshare_del(eo->path);
|
if (eo->path) evas_stringshare_del(eo->path);
|
||||||
if (eo->monitor) ecore_file_monitor_del(eo->monitor);
|
if (eo->monitor) ecore_file_monitor_del(eo->monitor);
|
||||||
orders = evas_list_remove(orders, eo);
|
orders = evas_list_remove(orders, eo);
|
||||||
|
@ -177,7 +191,11 @@ _e_order_read(E_Order *eo)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char *dir;
|
char *dir;
|
||||||
|
|
||||||
eo->desktops = evas_list_free(eo->desktops);
|
while (eo->desktops)
|
||||||
|
{
|
||||||
|
efreet_desktop_free(eo->desktops->data);
|
||||||
|
eo->desktops = evas_list_remove_list(eo->desktops, eo->desktops);
|
||||||
|
}
|
||||||
if (!eo->path) return;
|
if (!eo->path) return;
|
||||||
|
|
||||||
dir = ecore_file_dir_get(eo->path);
|
dir = ecore_file_dir_get(eo->path);
|
||||||
|
@ -208,7 +226,11 @@ _e_order_read(E_Order *eo)
|
||||||
if (!desktop)
|
if (!desktop)
|
||||||
desktop = efreet_desktop_get(ecore_file_file_get(buf));
|
desktop = efreet_desktop_get(ecore_file_file_get(buf));
|
||||||
if (!desktop)
|
if (!desktop)
|
||||||
desktop = efreet_util_desktop_file_id_find(ecore_file_file_get(buf));
|
{
|
||||||
|
desktop = efreet_util_desktop_file_id_find(ecore_file_file_get(buf));
|
||||||
|
/* Need to ref this as we only get a cache pointer from efreet_util */
|
||||||
|
if (desktop) efreet_desktop_ref(desktop);
|
||||||
|
}
|
||||||
if (desktop) eo->desktops = evas_list_append(eo->desktops, desktop);
|
if (desktop) eo->desktops = evas_list_append(eo->desktops, desktop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -283,6 +305,7 @@ _e_order_cb_efreet_desktop_change(void *data, int ev_type, void *ev)
|
||||||
{
|
{
|
||||||
if (l2->data == event->current)
|
if (l2->data == event->current)
|
||||||
{
|
{
|
||||||
|
efreet_desktop_free(l2->data);
|
||||||
eo->desktops = evas_list_remove_list(eo->desktops, l2);
|
eo->desktops = evas_list_remove_list(eo->desktops, l2);
|
||||||
changed = 1;
|
changed = 1;
|
||||||
}
|
}
|
||||||
|
@ -303,6 +326,8 @@ _e_order_cb_efreet_desktop_change(void *data, int ev_type, void *ev)
|
||||||
{
|
{
|
||||||
if (l2->data == event->previous)
|
if (l2->data == event->previous)
|
||||||
{
|
{
|
||||||
|
efreet_desktop_free(l2->data);
|
||||||
|
efreet_desktop_ref(event->current);
|
||||||
l2->data = event->current;
|
l2->data = event->current;
|
||||||
changed = 1;
|
changed = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue