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; bd->icon_object = NULL;
} }
if (!bd->desktop) 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) if (!bd->desktop)
bd->desktop = e_exec_startup_id_pid_find(bd->client.netwm.startup_id, {
bd->client.netwm.pid); bd->desktop = e_exec_startup_id_pid_find(bd->client.netwm.startup_id,
if (bd->desktop) efreet_desktop_ref(bd->desktop); bd->client.netwm.pid);
if (bd->desktop) efreet_desktop_ref(bd->desktop);
}
bd->icon_object = e_border_icon_add(bd, bd->bg_evas); bd->icon_object = e_border_icon_add(bd, bd->bg_evas);
if ((bd->focused) && (bd->icon_object)) if ((bd->focused) && (bd->icon_object))
edje_object_signal_emit(bd->icon_object, "e,state,focused", "e"); 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; Evas_List *l;
efreet_desktop_ref(desktop);
inst->desktop = desktop; inst->desktop = desktop;
inst->exe = exe; inst->exe = exe;
inst->startup_id = startup_id; 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); 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->expire_timer) ecore_timer_del(inst->expire_timer);
if (inst->desktop) efreet_desktop_free(inst->desktop);
free(inst); free(inst);
return 1; return 1;
} }