Use Ecore_Job to do one shot delayed job.

SVN revision: 45024
This commit is contained in:
Sebastian Dransfeld 2010-01-10 18:49:05 +00:00
parent bc4e1d9872
commit 1f814d20e1
1 changed files with 8 additions and 9 deletions

View File

@ -87,8 +87,8 @@ struct _Instance
} timer;
struct
{
Ecore_Idler *size_apply;
} idler;
Ecore_Job *size_apply;
} job;
Eina_List *icons;
E_Menu *menu;
};
@ -200,20 +200,19 @@ _systray_size_apply_do(Instance *inst)
ecore_x_window_move_resize(inst->win.base, x, y, w, h);
}
static int
static void
_systray_size_apply_delayed(void *data)
{
Instance *inst = data;
_systray_size_apply_do(inst);
inst->idler.size_apply = NULL;
return 0;
inst->job.size_apply = NULL;
}
static void
_systray_size_apply(Instance *inst)
{
if (inst->idler.size_apply) return;
inst->idler.size_apply = ecore_idler_add(_systray_size_apply_delayed, inst);
if (inst->job.size_apply) return;
inst->job.size_apply = ecore_job_add(_systray_size_apply_delayed, inst);
}
static void
@ -998,8 +997,8 @@ _gc_shutdown(E_Gadcon_Client *gcc)
ecore_event_handler_del(inst->handler.configure);
if (inst->timer.retry)
ecore_timer_del(inst->timer.retry);
if (inst->idler.size_apply)
ecore_idler_del(inst->idler.size_apply);
if (inst->job.size_apply)
ecore_job_del(inst->job.size_apply);
if (instance == inst)
instance = NULL;