More desktop ref/free.

SVN revision: 30994
This commit is contained in:
Sebastian Dransfeld 2007-07-26 12:38:18 +00:00
parent 105936a464
commit c0e8135c40
2 changed files with 12 additions and 5 deletions

View File

@ -6520,12 +6520,17 @@ _e_border_eval(E_Border *bd)
bd->icon_object = NULL;
}
if (!bd->desktop)
bd->desktop = efreet_util_desktop_wm_class_find(bd->client.icccm.name,
bd->client.icccm.class);
{
bd->desktop = efreet_util_desktop_wm_class_find(bd->client.icccm.name,
bd->client.icccm.class);
if (bd->desktop) efreet_desktop_ref(bd->desktop);
}
if (!bd->desktop)
bd->desktop = e_exec_startup_id_pid_find(bd->client.netwm.startup_id,
bd->client.netwm.pid);
if (bd->desktop) efreet_desktop_ref(bd->desktop);
{
bd->desktop = e_exec_startup_id_pid_find(bd->client.netwm.startup_id,
bd->client.netwm.pid);
if (bd->desktop) efreet_desktop_ref(bd->desktop);
}
bd->icon_object = e_border_icon_add(bd, bd->bg_evas);
if ((bd->focused) && (bd->icon_object))
edje_object_signal_emit(bd->icon_object, "e,state,focused", "e");

View File

@ -240,6 +240,7 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
{
Evas_List *l;
efreet_desktop_ref(desktop);
inst->desktop = desktop;
inst->exe = exe;
inst->startup_id = startup_id;
@ -340,6 +341,7 @@ _e_exec_cb_exit(void *data, int type, void *event)
}
e_exec_start_pending = evas_list_remove(e_exec_start_pending, inst->desktop);
if (inst->expire_timer) ecore_timer_del(inst->expire_timer);
if (inst->desktop) efreet_desktop_free(inst->desktop);
free(inst);
return 1;
}