efl_ui_win: reset first_draw flag if window is resized while hidden

Summary:
this indicates that the window's internal object sizes will have changed,
requiring a full window recalc. if the window is not visible, defer all
recalcs until pre-render to avoid unnecessary calcs and use the same
codepath as the initial window show

ref T7172
Depends on D6646

Reviewers: kimcinoo, eagleeye, ManMower

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl_widgets

Maniphest Tasks: T7172

Differential Revision: https://phab.enlightenment.org/D6647
This commit is contained in:
Mike Blumenkrantz 2018-07-24 09:18:53 -05:00 committed by Derek Foreman
parent 6fa9fd789e
commit 9ff3b6124e
1 changed files with 7 additions and 0 deletions

View File

@ -3075,6 +3075,13 @@ _efl_ui_win_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Size2D sz
}
efl_gfx_entity_size_set(efl_super(obj, MY_CLASS), sz);
/* if window is hidden during a resize,
* revert to initial state where pre-render triggers recalc and other resizes are deferred
*/
if (efl_gfx_entity_visible_get(obj)) return;
if (!sd->first_draw) return;
sd->first_draw = EINA_FALSE;
edje_object_freeze(sd->frame_obj);
}
static void