forked from enlightenment/efl
parent
ff96904faa
commit
9e5eed53b1
|
@ -3,6 +3,7 @@
|
|||
#include "edje_private.h"
|
||||
|
||||
static Ecore_Job *job = NULL;
|
||||
static Ecore_Timer *job_loss_timer = NULL;
|
||||
|
||||
static Evas_List *msgq = NULL;
|
||||
static Evas_List *tmp_msgq = NULL;
|
||||
|
@ -88,8 +89,28 @@ _edje_dummy_timer(void *data)
|
|||
static void
|
||||
_edje_job(void *data)
|
||||
{
|
||||
// printf("_edje_job()\n");
|
||||
job = NULL;
|
||||
if (job_loss_timer)
|
||||
{
|
||||
ecore_timer_del(job_loss_timer);
|
||||
job_loss_timer = NULL;
|
||||
}
|
||||
_edje_message_queue_process();
|
||||
// printf("_edje_job() END\n");
|
||||
}
|
||||
|
||||
static int
|
||||
_edje_job_loss_timer(void *data)
|
||||
{
|
||||
job_loss_timer = NULL;
|
||||
if (job)
|
||||
{
|
||||
// printf("!!!!!!!!! EDJE!!! EEEK! lost a job!\n");
|
||||
// printf("!!! job = %p\n", job);
|
||||
job = NULL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -253,12 +274,12 @@ _edje_message_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, v
|
|||
int i;
|
||||
unsigned char *msg = NULL;
|
||||
|
||||
/* FIXME: for some reason we lose a job event along the way when in e17 */
|
||||
/* we delete a border */
|
||||
/* if (!job) */
|
||||
if (!job)
|
||||
{
|
||||
/* job = */
|
||||
ecore_job_add(_edje_job, NULL);
|
||||
// printf("no job... add\n");
|
||||
job = ecore_job_add(_edje_job, NULL);
|
||||
if (job_loss_timer) ecore_timer_del(job_loss_timer);
|
||||
job_loss_timer = ecore_timer_add(0.25, _edje_job_loss_timer, NULL);
|
||||
}
|
||||
em = _edje_message_new(ed, queue, type, id);
|
||||
if (!em) return;
|
||||
|
|
Loading…
Reference in New Issue