forked from enlightenment/efl
edje_cc: add lookup for inherited after program
Summary: "after" program inherited from inherit_only group does not have original program lookup, but _edje_program_copy() doesn't consider this case. When it fails to copy program lookup, new program lookup should be appeded. @fix Test Plan: make attached program and run Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D4253
This commit is contained in:
parent
1d281906f2
commit
1d2be3fc4c
|
@ -180,7 +180,7 @@ void data_queue_copied_part_lookup(Edje_Part_Collection *pc, int *src, int *d
|
|||
void *data_queue_program_lookup(Edje_Part_Collection *pc, const char *name, int *dest);
|
||||
void program_lookup_rename(void *p, const char *name);
|
||||
void copied_program_lookup_delete(Edje_Part_Collection *pc, const char *name);
|
||||
void data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest);
|
||||
Eina_Bool data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest);
|
||||
void copied_program_anonymous_lookup_delete(Edje_Part_Collection *pc, int *dest);
|
||||
void data_queue_anonymous_lookup(Edje_Part_Collection *pc, Edje_Program *ep, int *dest);
|
||||
void data_queue_copied_anonymous_lookup(Edje_Part_Collection *pc, int *src, int *dest);
|
||||
|
|
|
@ -2093,7 +2093,8 @@ _edje_program_copy(Edje_Program *ep, Edje_Program *ep2)
|
|||
ep->after = eina_list_append(ep->after, pa);
|
||||
copy = (char*) (pa + 1);
|
||||
memcpy(copy, name, strlen(name) + 1);
|
||||
data_queue_copied_program_lookup(pc, &(pa2->id), &(pa->id));
|
||||
if (!data_queue_copied_program_lookup(pc, &(pa2->id), &(pa->id)))
|
||||
data_queue_program_lookup(pc, copy, &(pa->id));
|
||||
}
|
||||
|
||||
ep->api.name = STRDUP(ep2->api.name);
|
||||
|
|
|
@ -3181,7 +3181,7 @@ copied_program_lookup_delete(Edje_Part_Collection *pc, const char *name)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Eina_Bool
|
||||
data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest)
|
||||
{
|
||||
Eina_List *l;
|
||||
|
@ -3190,8 +3190,12 @@ data_queue_copied_program_lookup(Edje_Part_Collection *pc, int *src, int *dest)
|
|||
EINA_LIST_FOREACH(program_lookups, l, pl)
|
||||
{
|
||||
if (pl->dest == src)
|
||||
data_queue_program_lookup(pc, pl->u.name, dest);
|
||||
{
|
||||
data_queue_program_lookup(pc, pl->u.name, dest);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue