win : Prohibiting auto-rendering, until elm_win is shown.

Summary:
Although elm_win is only created and evas_object_show with elm_win is not called,
evas_rendering works sometimes.
This rendering is not necessary. Because on one is shown and just back buffer is allocated.
This patch is the prohibiting auto-rendering, if elm_win is shown by calling evas_object_show()
It is effective for power consumption and reducing memory.

@fix

Test Plan:
1. elementary_test : checking all menus's working
2. modifed bg_example_02 : updated elm_bg's color by animator without evas_object_show(elm_win)

Reviewers: jpeg, jypark, raster

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D3282
This commit is contained in:
Wonsik Jung 2015-11-05 20:37:11 +09:00 committed by Carsten Haitzler (Rasterman)
parent 93d9489819
commit 0c64dc46e6
1 changed files with 13 additions and 0 deletions

View File

@ -3826,6 +3826,19 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_
elm_win_focus_highlight_animate_set(obj, EINA_TRUE);
}
//Prohibiting auto-rendering, until elm_win is shown.
if (_elm_config->auto_norender_withdrawn)
{
if (elm_win_withdrawn_get(obj))
{
if (!evas_object_data_get(obj, "__win_auto_norender"))
{
elm_win_norender_push(obj);
evas_object_data_set(obj, "__win_auto_norender", obj);
}
}
}
#ifdef ELM_DEBUG
Evas_Modifier_Mask mask = evas_key_modifier_mask_get(sd->evas, "Control");
evas_object_event_callback_add