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