edje_program.c   edje_program.c 
skipping to change at line 480 skipping to change at line 480
free(pp); free(pp);
return; return;
} }
pp->edje = ed; pp->edje = ed;
pp->program = pr; pp->program = pr;
ed->pending_actions = eina_list_append(ed->pending_actions, pp); ed->pending_actions = eina_list_append(ed->pending_actions, pp);
return; return;
} }
if ((recursions >= 64) || (recursion_limit)) if ((recursions >= 64) || (recursion_limit))
{ {
ERR("Programs recursing up to recursion limit of %i. Disabled.", ERR("Programs recursing up to recursion limit of %i in '%s' with '%s
64); ', '%s' from '%s', '%s'. Disabled.",
64, pr->name, ssig, ssrc, ed->path, ed->group);
recursion_limit = 1; recursion_limit = 1;
return; return;
} }
recursions++; recursions++;
_edje_block(ed); _edje_block(ed);
_edje_ref(ed); _edje_ref(ed);
_edje_freeze(ed); _edje_freeze(ed);
switch (pr->action) switch (pr->action)
{ {
case EDJE_ACTION_TYPE_STATE_SET: case EDJE_ACTION_TYPE_STATE_SET:
skipping to change at line 874 skipping to change at line 874
{ {
_edje_emit_full(ed, sig, src, NULL, NULL); _edje_emit_full(ed, sig, src, NULL, NULL);
} }
/* data should either be NULL or a malloc allocated data */ /* data should either be NULL or a malloc allocated data */
void void
_edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, voi d (*free_func)(void *)) _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, voi d (*free_func)(void *))
{ {
Edje_Message_Signal emsg; Edje_Message_Signal emsg;
const char *sep; const char *sep;
Eina_Bool broadcast = EINA_TRUE; Eina_Bool broadcast;
if (!ed->collection) return;
if (ed->delete_me) return; if (ed->delete_me) return;
broadcast = ed->collection->broadcast_signal;
sep = strchr(sig, EDJE_PART_PATH_SEPARATOR); sep = strchr(sig, EDJE_PART_PATH_SEPARATOR);
/* If we are not sending the signal to a part of the child, the /* If we are not sending the signal to a part of the child, the
* signal if for ourself * signal if for ourself
*/ */
if (sep) if (sep)
{ {
Edje_Real_Part *rp = NULL; Edje_Real_Part *rp = NULL;
const char *newsig; const char *newsig;
skipping to change at line 997 skipping to change at line 999
child = _edje_children_get(rp, idx); child = _edje_children_get(rp, idx);
ed2 = _edje_fetch(child); ed2 = _edje_fetch(child);
if (!ed2) goto end; if (!ed2) goto end;
_edje_emit(ed2, newsig, src); _edje_emit(ed2, newsig, src);
broadcast = EINA_FALSE; broadcast = EINA_FALSE;
} }
break ; break ;
default: default:
fprintf(stderr, "SPANK SPANK SPANK !!!\nYou should never be h ere !\n"); ERR("SPANK SPANK SPANK !!!\nYou should never be here !");
break; break;
} }
} }
end: end:
emsg.sig = sig; emsg.sig = sig;
emsg.src = src; emsg.src = src;
if (data) if (data)
{ {
emsg.data = calloc(1, sizeof(*(emsg.data))); emsg.data = calloc(1, sizeof(*(emsg.data)));
skipping to change at line 1288 skipping to change at line 1290
Eina_List *l; Eina_List *l;
if (ed->delete_me) return; if (ed->delete_me) return;
_edje_ref(ed); _edje_ref(ed);
_edje_freeze(ed); _edje_freeze(ed);
_edje_block(ed); _edje_block(ed);
if (ed->just_added_callbacks) if (ed->just_added_callbacks)
_edje_callbacks_patterns_clean(ed); _edje_callbacks_patterns_clean(ed);
ed->walking_callbacks++; ed->walking_callbacks = 1;
if (ed->callbacks) if (ed->callbacks)
{ {
Edje_Signal_Callback *escb; Edje_Signal_Callback *escb;
const Eina_List *match; const Eina_List *match;
const Eina_List *l2; const Eina_List *l2;
int r = 1; int r = 1;
callback_extra_data = (data) ? data->data : NULL; callback_extra_data = (data) ? data->data : NULL;
_edje_callbacks_patterns_init(ed); _edje_callbacks_patterns_init(ed);
skipping to change at line 1320 skipping to change at line 1322
match = edje_match_signal_source_hash_get(sig, src, match = edje_match_signal_source_hash_get(sig, src,
ed->patterns.callbacks.exa ct_match); ed->patterns.callbacks.exa ct_match);
EINA_LIST_FOREACH(match, l2, escb) EINA_LIST_FOREACH(match, l2, escb)
{ {
if ((prop) && (escb->propagate)) continue; if ((prop) && (escb->propagate)) continue;
if ((!escb->just_added) && (!escb->delete_me)) if ((!escb->just_added) && (!escb->delete_me))
{ {
escb->func(escb->data, ed->obj, sig, src); escb->func(escb->data, ed->obj, sig, src);
if (_edje_block_break(ed)) if (_edje_block_break(ed))
break; goto break_prog;
} }
} }
} }
break_prog: break_prog:
ed->walking_callbacks--; ed->walking_callbacks = 0;
if (!ed->walking_callbacks && if ((ed->delete_callbacks) || (ed->just_added_callbacks))
((ed->delete_callbacks) || (ed->just_added_callbacks)))
{ {
ed->delete_callbacks = 0; ed->delete_callbacks = 0;
ed->just_added_callbacks = 0; ed->just_added_callbacks = 0;
l = ed->callbacks; l = ed->callbacks;
while (l) while (l)
{ {
Edje_Signal_Callback *escb = l->data; Edje_Signal_Callback *escb = l->data;
Eina_List *next_l = l->next; Eina_List *next_l = l->next;
if (escb->just_added) if (escb->just_added)
skipping to change at line 1637 skipping to change at line 1638
(rp->edje, rp, rp->drag->val.x, rp->drag->val.y); (rp->edje, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(rp->edje, "drag,set", rp->part->name); _edje_emit(rp->edje, "drag,set", rp->part->name);
return EINA_TRUE; return EINA_TRUE;
} }
if (!strcmp(sub_name, "size_w")) if (!strcmp(sub_name, "size_w"))
{ {
if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
return EINA_FALSE; return EINA_FALSE;
rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
rp->edje->recalc_call = 1;
rp->edje->dirty = 1; rp->edje->dirty = 1;
#ifdef EDJE_CALC_CACHE #ifdef EDJE_CALC_CACHE
rp->invalidate = 1; rp->invalidate = 1;
#endif #endif
_edje_recalc(rp->edje); _edje_recalc(rp->edje);
return EINA_TRUE; return EINA_TRUE;
} }
if (!strcmp(sub_name, "size_h")) if (!strcmp(sub_name, "size_h"))
{ {
if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
return EINA_FALSE; return EINA_FALSE;
rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
rp->edje->recalc_call = 1;
rp->edje->dirty = 1; rp->edje->dirty = 1;
#ifdef EDJE_CALC_CACHE #ifdef EDJE_CALC_CACHE
rp->invalidate = 1; rp->invalidate = 1;
#endif #endif
_edje_recalc(rp->edje); _edje_recalc(rp->edje);
return EINA_TRUE; return EINA_TRUE;
} }
if (!strcmp(sub_name, "step_x")) if (!strcmp(sub_name, "step_x"))
{ {
 End of changes. 10 change blocks. 
9 lines changed or deleted 13 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/