parent
830a7c89ee
commit
04ca0cb31e
|
@ -197,7 +197,15 @@ _edje_recalc(Edje *ed)
|
|||
ed->recalc = 1;
|
||||
if (!ed->calc_only)
|
||||
{
|
||||
if (_edje_freeze_val > 0) _edje_freeze_calc_count++;
|
||||
if (_edje_freeze_val > 0)
|
||||
{
|
||||
if (!ed->freeze_calc)
|
||||
{
|
||||
_edje_freeze_calc_count++;
|
||||
_edje_freeze_calc_list = eina_list_append(_edje_freeze_calc_list, ed);
|
||||
ed->freeze_calc = 1;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -828,6 +828,12 @@ _edje_swallows_collect(Edje *ed)
|
|||
void
|
||||
_edje_file_del(Edje *ed)
|
||||
{
|
||||
if (ed->freeze_calc)
|
||||
{
|
||||
_edje_freeze_calc_list = eina_list_remove(_edje_freeze_calc_list, ed);
|
||||
ed->freeze_calc = 0;
|
||||
_edje_freeze_calc_count--;
|
||||
}
|
||||
_edje_message_del(ed);
|
||||
_edje_block_violate(ed);
|
||||
_edje_var_shutdown(ed);
|
||||
|
|
|
@ -778,22 +778,23 @@ struct _Edje
|
|||
|
||||
int preload_count;
|
||||
|
||||
unsigned short dirty : 1;
|
||||
unsigned short recalc : 1;
|
||||
unsigned short walking_callbacks : 1;
|
||||
unsigned short delete_callbacks : 1;
|
||||
unsigned short just_added_callbacks : 1;
|
||||
unsigned short have_objects : 1;
|
||||
unsigned short paused : 1;
|
||||
unsigned short no_anim : 1;
|
||||
unsigned short calc_only : 1;
|
||||
unsigned short walking_actions : 1;
|
||||
unsigned short block_break : 1;
|
||||
unsigned short delete_me : 1;
|
||||
unsigned short postponed : 1;
|
||||
unsigned int dirty : 1;
|
||||
unsigned int recalc : 1;
|
||||
unsigned int walking_callbacks : 1;
|
||||
unsigned int delete_callbacks : 1;
|
||||
unsigned int just_added_callbacks : 1;
|
||||
unsigned int have_objects : 1;
|
||||
unsigned int paused : 1;
|
||||
unsigned int no_anim : 1;
|
||||
unsigned int calc_only : 1;
|
||||
unsigned int walking_actions : 1;
|
||||
unsigned int block_break : 1;
|
||||
unsigned int delete_me : 1;
|
||||
unsigned int postponed : 1;
|
||||
unsigned int freeze_calc : 1;
|
||||
#ifdef EDJE_CALC_CACHE
|
||||
unsigned short text_part_change : 1;
|
||||
unsigned short all_part_change : 1;
|
||||
unsigned int text_part_change : 1;
|
||||
unsigned int all_part_change : 1;
|
||||
#endif
|
||||
lua_State *L;
|
||||
};
|
||||
|
@ -1169,6 +1170,7 @@ extern char *_edje_fontset_append;
|
|||
extern FLOAT_T _edje_scale;
|
||||
extern int _edje_freeze_val;
|
||||
extern int _edje_freeze_calc_count;
|
||||
extern Eina_List *_edje_freeze_calc_list;
|
||||
|
||||
extern Eina_Mempool *_edje_real_part_mp;
|
||||
extern Eina_Mempool *_edje_real_part_state_mp;
|
||||
|
|
|
@ -30,6 +30,7 @@ char *_edje_fontset_append = NULL;
|
|||
FLOAT_T _edje_scale = ZERO;
|
||||
int _edje_freeze_val = 0;
|
||||
int _edje_freeze_calc_count = 0;
|
||||
Eina_List *_edje_freeze_calc_list = NULL;
|
||||
|
||||
typedef struct _Edje_List_Foreach_Data Edje_List_Foreach_Data;
|
||||
struct _Edje_List_Foreach_Data
|
||||
|
@ -46,7 +47,7 @@ Edje_Real_Part *_edje_real_part_recursive_get_helper(Edje *ed, char **path);
|
|||
|
||||
/************************** API Routines **************************/
|
||||
|
||||
//#define FASTFREEZE 1
|
||||
#define FASTFREEZE 1
|
||||
|
||||
/**
|
||||
* @brief Freeze Edje objects.
|
||||
|
@ -114,15 +115,13 @@ edje_thaw(void)
|
|||
INF("fr -- ->%i", _edje_freeze_val);
|
||||
if ((_edje_freeze_val <= 0) && (_edje_freeze_calc_count > 0))
|
||||
{
|
||||
Eina_List *l;
|
||||
Edje *ed;
|
||||
|
||||
_edje_freeze_calc_count = 0;
|
||||
EINA_LIST_FOREACH(_edje_edjes, l, data)
|
||||
EINA_LIST_FREE(_edje_freeze_calc_list, ed)
|
||||
{
|
||||
Edje *ed;
|
||||
|
||||
ed = _edje_fetch(data);
|
||||
if (ed) _edje_thaw_edje(ed);
|
||||
_edje_thaw_edje(ed);
|
||||
ed->freeze_calc = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue