From 466c164e1d1b1067df3958b93891ad9ea49a47da Mon Sep 17 00:00:00 2001 From: Wonsik Jung Date: Thu, 5 Nov 2015 20:37:11 +0900 Subject: [PATCH] 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 --- src/lib/elm_win.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index f9d3e84..a1d38cc 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -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 -- 2.7.4