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/ |